我有一个jsp,它是通过java方法init()
初始化的.
初始化就像
void init() {
....
out.print("<div>");
out.print(someString);
out.print("</div>");
....
}
何时 someString
包含"string</div>"
我只得到"string"
我的 jsp 上有文本,但我想获取 "string</div>"
。我应该如何打印 "</div>"
里面的文字<div>
html 中的标签?
最佳答案
如果someString
并不意味着被解释为 HTML,您不想将其字面输出为 HTML,您需要确保 <
和&
(至少)被编码。
您可以通过执行一对 String#replace
来做到这一点:
out.print(someString.replace("&", "&").replace("<", "<"));
请注意,执行 &
很重要<
之前的替换替换(否则您最终将在 &
中编码 <
)。
如果您有机会在属性值中输出此内容(例如 <div data-stuff="output goes here">
),您还需要对 "
进行编码:
out.print(
someString.replace("&", "&")
.replace("<", "<")
.replace("\"", """)
);
...除了 HTML 大小微不足道增加之外,始终编码 "
是无害的。 .
如果您在属性周围使用单引号 ( <div data-stuff='output goes here'>
),您还需要对 '
进行编码。不知道浏览器对'
的支持有多好是这些天(它曾经是不稳定的),所以你可以使用 '
。我的偏好只是确保我始终在属性值周围使用双引号,因此我不必担心撇号。
关于java - "<\div>"<div> 标签内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220498/