0

我从服务器端获取用户名并在jsp中显示如下

String userName = getFullName();
request.setAttribute("userName",userName);

jsp文件

<div onclick=callToDoScript('<c:out value="${userName}"/>')> </div>

这工作正常。在我的例子中,用户名可能包含日文字符、单引号、括号或任何其他特殊字符。

如果用户名包含如下单引号,则脚本构造会被严重破坏

<div onclick=callToDoScript('rock's"name')> </div>

如果我对名称进行编码,则不显示日文字母属性。

我需要知道可能破坏构造的场景列表以及相同的解决方案

提前致谢。

4

1 回答 1

0

经过一番搜索后,我找到了解决问题的方法。

String userName = getFullName();
userName = StringEscapeUtils.escapeEcmaScript(userName);
request.setAttribute("userName",userName);
于 2013-05-27T11:29:18.157 回答