java - "<\div>"<div> 标签内的文本

标签 java html jsp

我有一个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("&", "&amp;").replace("<", "&lt;"));

请注意,执行 & 很重要< 之前的替换替换(否则您最终将在 & 中编码 &lt; )。

如果您有机会在属性值中输出此内容(例如 <div data-stuff="output goes here"> ),您还需要对 " 进行编码:

out.print(
    someString.replace("&", "&amp;")
               .replace("<", "&lt;")
               .replace("\"", "&quot;")
);

...除了 HTML 大小微不足道增加之外,始终编码 " 是无害的。 .

如果您在属性周围使用单引号 ( <div data-stuff='output goes here'> ),您还需要对 ' 进行编码。不知道浏览器对&apos;的支持有多好是这些天(它曾经是不稳定的),所以你可以使用 &#39; 。我的偏好只是确保我始终在属性值周围使用双引号,因此我不必担心撇号。

关于java - "<\div>"<div> 标签内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220498/

相关文章:

html - 像在 HTML Canvas 或 CSS 中一样为 SVG <image> 定义源矩形

html - 将菜单中的文本高度与图像高度匹配

java - 正则表达式正在创建一个不应该存在的空数组

java - cloc,如何对结果求和?

php - 为什么 "$_GET"密码错误?

java - 如何获取图片绝对路径?

java - JSP 请求参数在包含 Weblogic 的 jsp 上返回 null

java - JSTL 和 hashmap 不工作

java - 从 ArrayList<HashMap<String, String>> 填充 ListView

java - 预定的 future 会导致内存泄漏吗?