Java 如何在JSP中使用正则表达式打印HTML标记?

Java 如何在JSP中使用正则表达式打印HTML标记?,java,html,regex,jsp,Java,Html,Regex,Jsp,我想使用JSP将包含“”的字符串打印到网页上。我需要替换任何“”和“您试图做的是转义HTML;正则表达式不是答案 有关详细信息,请参阅。使用JSLT标记out,它会转义值以确保安全呈现。将此标记放入JSP中,放置在希望呈现值的位置: <c:out value="${myVar}" escapeXml="true" /> 其中,myVar是要打印的字符串变量在Java中不需要正则表达式来替换尖括号 您最好使用普通字符串方法: public String replaceAngleB

我想使用JSP将包含“
”的字符串打印到网页上。我需要替换任何“
”和“
您试图做的是转义HTML;正则表达式不是答案


有关详细信息,请参阅。

使用JSLT标记
out
,它会转义值以确保安全呈现。将此标记放入JSP中,放置在希望呈现值的位置:

<c:out value="${myVar}" escapeXml="true" />


其中,
myVar
是要打印的字符串变量

在Java中不需要正则表达式来替换尖括号

您最好使用普通字符串方法:

public String replaceAngleBrackets(String s) {
    return s.replace("<", "&lt;").replace(">", "&gt;");
}
公共字符串替换尖括号(字符串s){
返回s.replace(“,”);
}

此单行方法执行速度更快,更易于读取、维护和重用。

在这种情况下,没有理由使用正则表达式。请注意,您可能还希望转义HTML中的其他实体。可能会很有用。如果您希望它更快,请避免使用正则表达式。我不尝试转义HTML标记。字符串如“
不在网页中打印,但它存在于html源文件中,因为浏览器将其作为标记@hoipolloiI预计这比任何涉及正则表达式的事情都要快。。。自己对其进行基准测试应该非常容易。对于上面的示例,这应该是很好的。XML!=尽管是HTML;请看我的意思。我不建议您这样做,至少您可以确定
${myVar}
是一个不容易受到XSS攻击的有效HTML代码。
public String replaceAngleBrackets(String s) {
    return s.replace("<", "&lt;").replace(">", "&gt;");
}