java—如何在文本/纯servlet响应中使用换行符

r6l8ljro  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(564)

我有一个servlet生成一些文本。这样做的目的是为应用程序提供一个易于解析的简单状态页,因此我希望避免使用html。
一切正常,只是换行符在过程中被吞没了。
我试过了 \r \r\n \n 但是浏览器中的结果总是一样的:所有看起来像换行符的东西都会消失,所有东西都在一行中。这使得它几乎不可能阅读(无论是机器还是人类)。
firefox确认结果是text/plain类型的
那么如何在文本/纯文本文档中获得换行符,该文档应该在浏览器中显示并由servlet生成?
更新:
其他不起作用的事情:
println System.getProperty("line.separator")

5t7ly7z5

5t7ly7z51#

plain/text 它完全依赖于浏览器的换行处理
例如:
在firefox中

about:config

把这个放好

plain_text.wrap_long_lines;true

您无法从服务器处理它,您可能需要将它转换为纯文本和换行符或css魔术html

tktrz96b

tktrz96b2#

正如@gnicker所说,我会选择一种内容类型 text-plain 在servlet中:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    response.setContentType("text/plain");
    // rest of your code...
}

要输出新行,只需使用servletoutputstream的println函数:

ServletOutputStream out = response.getOutputStream();
out.println("my text in the first line");
out.println("my text in the second line");
out.close

新行字符可以是 \n 或者 \r\n 尽管你可以坚持 println 功能。

u0sqgete

u0sqgete3#

对不起,又是我的错。
我们配置了一个压缩servlet过滤器,它删除了换行符。
没有那个过滤器 \n 很好用。

相关问题