它不起作用,因为它\
是Java字符串中的转义字符.要按字面意思来表示,你需要\
再次与另一个人一起逃避它.这"
也是EL中的一个特殊字符,你还需要将它转义为字面表示它.所以,正确的语法应该是:
但是,您实际上应该使用它fn:escapeXml()
来阻止XSS.它不仅逃避了引号,还逃避了其他角色.
JSP/Servlet Web应用程序中的XSS预防
你做错了(使用fn:replace).
正确的方法是:
(actually tested code - works 100%)
编辑:更多思考:
通过使用fn:escapeXml(由BalusC编写)的方式也可以工作并且看起来更好(没有嵌套标签)
使用fn:替换为mimick fn:escapeXml要求麻烦.您将忘记包含一些应该转义的字符.只需使用现有的,经过试验和测试的fn:escapeXml(或c:out)