在普通Java中转义HTML符号的推荐方法是什么?

2022-08-31 05:15:11

在以纯 Java 代码输出 HTML 时,是否有推荐的方法来转义 、 和 字符?(除了手动执行以下操作之外,即)。<>"&

String source = "The less than sign (<) and ampersand (&) must be escaped before using them in HTML";
String escaped = source.replace("<", "&lt;").replace("&", "&amp;"); // ...

答案 1

StringEscapeUtils from Apache Commons Lang

import static org.apache.commons.lang.StringEscapeUtils.escapeHtml;
// ...
String source = "The less than sign (<) and ampersand (&) must be escaped before using them in HTML";
String escaped = escapeHtml(source);

对于版本 3

import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
// ...
String escaped = escapeHtml4(source);

答案 2

Apache Commons的替代方案:使用Spring的方法。HtmlUtils.htmlEscape(String input)