What is the recommended way to escape HTML symbols in plain Java?

escaping, html, java

Solution

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);

For version 3:

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

Problem

Is there a recommended way to escape `<`, `>`, `"` and `&` characters when outputting HTML in plain Java code? (Other than manually doing the following, that is). ``` String source = "The less than sign (<) and ampersand (&) must be escaped before using them in HTML"; String escaped = source.replace("<", "&lt;").replace("&", "&amp;"); // ... ```

Original source

Related problems