用java中的HTML实体替换字符

时间:2012-06-11 10:08:47

标签: html java-ee escaping html-entities

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

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

3 个答案:

答案 0 :(得分:11)

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

请注意,这也会将à转换为&agrave;&amp;这样

答案 1 :(得分:1)

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

默认情况下,escapeXml属性为true

  

escapeXml - 确定结果中的字符<,>,&,',"   string应该转换为它们对应的字符实体   码。默认值为true

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

答案 2 :(得分:0)

在 Spring 生态系统中开发时,可以使用 HtmlUtils.htmlEscape() 方法。

有关完整的 apidoc,请访问 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/util/HtmlUtils.html