用java中的HTML实体替换字符

use*_*652 4 html escaping html-entities java-ee

我想在过滤器内的HTML响应中用它们各自的HTML实体替换某些字符.字符包括<,>,&.我无法使用replaceAll(),因为它将替换所有字符,甚至是HTML标记的一部分.

这样做的最佳方法是什么?

san*_*pta 11

从Java您可以尝试,Apache Commons Lang(旧版v2) StringEscapeUtils.escapeHtml().
或者与commons-lang3 : StringEscapeUtils.escapeHtml4().

请注意,这也转换à&agrave;&等

  • 另外值得注意的是:如果您(已经)使用了Web框架,那么框架中已经内置了类似的功能.例如,Spring有HtmlUtils.htmlEscape(),在这里记录:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/HtmlUtils.html (3认同)

ada*_*shr 1

如果您使用 JSTL 等技术,您只需使用 打印出该值<c:out value="${myObject.property}"/>,它就会自动转义。

该属性escapeXmltrue默认的。

escapeXml- 确定<,>,&,',"结果字符串中的字符是否应转换为其相应的字符实体代码。默认值为true

http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/