我想显示一个称为
的文本"welcome<to>Jsp"
在页面源中,我也将其视为" welcomejsp"
,但在HTML中仅显示为" Welcomejsp"。请引导我。
您必须逃脱这些字符。
welcome<to>Jsp
我会建议使用Apache的Stringscapeutils类(可在org.apache.commons.lang中使用)函数escapeHtml()
用于逃脱HTML。
StringEscapeUtils.escapeHtml("welcome<to>Jsp")
"welcome<to>Jsp"
> (greater than) - (>)
< (less than) - (<)
这些字符需要以这种方式进行编码以实际显示它们。
使用JSTL <c:out>
标签或fn:escapeXml()
函数。
<c:out value="welcome<to>Jsp" />
或
${fn:escapeXml('welcome<to>Jsp')}
您甚至可以在模型值上使用它。
<c:out value="${bean.property}" />
或
${fn:escapeXml(bean.property)}
这两个应始终在涉及用户控制输入时,否则您将完全开放XSS攻击孔。另请参阅我们的JSP Wiki页面,XSS背后的一般概念是什么?
我刚刚添加了空格:)
<body bgcolor="#333" text="#fff">
<!-- jsp expression -->
<p>Expression < % = new java.util.Date() % ></p>
<p> <%= new java.util.Date() %></p>
<!-- jsp Scriptlet -->
<p>Scriptlet < % Java code 1 to many lines % ></p>
<!-- jsp Declaration -->
<p>Declaration < % ! variable or method declaration %></p>
<p>JSP comment < %-- --%></p>