我想在过滤器内的 HTML 响应中用它们各自的 HTML 实体替换某些字符。字符包括<, >, &. 我不能使用replaceAll()它,因为它会替换所有字符,即使是那些属于 HTML 标记的字符。
这样做的最佳方法是什么?
我想在过滤器内的 HTML 响应中用它们各自的 HTML 实体替换某些字符。字符包括<, >, &. 我不能使用replaceAll()它,因为它会替换所有字符,即使是那些属于 HTML 标记的字符。
这样做的最佳方法是什么?
在 Java 中,您可以尝试 Apache Commons Lang (legacy v2) StringEscapeUtils.escapeHtml()。或使用 commons-lang3: StringEscapeUtils.escapeHtml4()。
请注意,这也会转换à为à& 这样的。
如果您正在使用诸如 JSTL 之类的技术,您可以简单地打印出使用的值<c:out value="${myObject.property}"/>,它将自动转义。
该属性escapeXml是true默认的。
escapeXml- 确定<,>,&,',"结果字符串中的字符是否应转换为其对应的字符实体代码。默认值为true。
在 Spring 生态系统中开发时,可以使用HtmlUtils.htmlEscape()方法。
如需完整的 apidocs,请访问https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/util/HtmlUtils.html