我有点苦恼:
我有很多值,我在 java 的 bean 中设置,然后我使用这样的脚本在 javascript 和 jsp 中获取它们:
在我的 Bean.java 中:
public void setListValue(String s) { listValue = s; }
public String getListValue() { return listValue; }
现在在我的 jsp 中(在 javascript 函数中):
input = $input({type:'hidden',id:'ListVal',name:'ListVal',
value: '<%= results.getListValue() %>'});
有时我也在使用 scriplet 代码来检索 jsp 中的参数。
通常,如果将参数从 java 文件传递到 java 文件或从 jsp 文件传递到 jsp 文件,那么我使用本机 java 编码器和解码器,如下所示:
EncodedHere = URLEncoder.encode(encodedStr,"UTF-8");
DecodedHere = URLDecoder.decode(EncodedHere,"UTF-8");
这对于那些场景完美无缺,但是如果我在 java 中设置了我的变量,然后我尝试像前面提到的方式那样在 javascript 或 jsp 中检索它们,它会失败。我也尝试过JSTL方式,但无法使其工作,似乎 JSTL 不适合在 javascript 中获取值。现在这个脚本已被许多人标记为安全问题。由于它是一个庞大的代码库,因此也很难更改它。
有人对以某种方式避免此安全漏洞有任何想法吗?换句话说,有没有办法我可以在java中编码变量并在jsp和javascript中获取编码字符串然后解码它?