如果名称有特殊符号,则脚本构造不正确

时间:2013-05-24 10:23:37

标签: java javascript jsp encoding struts

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

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

Jsp文件

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

这很好用。在我的情况下,用户名可能包含日语字符,单引号,括号或任何其他特殊字符。

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

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

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

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

解决方案

提前致谢。

1 个答案:

答案 0 :(得分:0)

在做了一些搜索后,我找到了解决问题的方法。

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