You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Out.print输出含<>的字符串时内容丢失,如何正常打印?

解决out.print输出含<>字符串内容被移除的问题

嘿,我太懂这个问题了!之前用Servlet的out.print()输出带尖括号的内容时,也纳闷怎么好好的内容突然没了😅。其实原因很简单:out.print()默认输出的是HTML格式的内容,浏览器会把<>包裹的部分当成HTML标签来解析,自然就不会显示出来了。

给你两种实用的解决办法:

方法一:手动替换为HTML实体

直接把尖括号转换成对应的HTML实体字符,浏览器就会把它们当成普通文本显示:

  • < 替换成 &lt;
  • > 替换成 &gt;

举个代码例子:

// 原来的写法(内容会被浏览器解析为标签,不显示)
out.print("<Hello, Nasrin!>");

// 修改后的写法(正常显示<Hello, Nasrin!>)
out.print("&lt;Hello, Nasrin!&gt;");

方法二:用工具类自动转义

如果要转义的内容比较多,手动替换太麻烦,可以用现成的工具类来自动处理:
比如Apache Commons Text库中的StringEscapeUtils.escapeHtml4()方法,或者Servlet API里的HttpServletResponse.encodeHTML()(注意部分Servlet版本可能需要适配)。

自己写个简单的转义函数也很方便,比如:

public String escapeHtml(String input) {
    if (input == null) return null;
    return input.replace("<", "&lt;")
                .replace(">", "&gt;")
                .replace("&", "&amp;") // 顺便转义&,避免实体字符被破坏
                .replace("\"", "&quot;");
}

// 使用的时候:
out.print(escapeHtml("<Hello, Nasrin!>"));

这样就能完整打印出你想要的带尖括号的内容啦!

内容的提问来源于stack exchange,提问作者Nasrin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:30:05