如何在 text/plain servlet 响应中换行

How to have line breaks in text/plain servlet response

我有一个生成一些文本的 servlet。这样做的目的是为可以轻松解析的应用程序提供一个简单的状态页面,因此我想避免 html.

一切正常,除了换行符在过程中的某处被吞没。

我试过 \r \r\n \n 但是浏览器中的结果总是一样的:所有看起来像换行符的东西都消失了,所有东西都在一个很长的行中.这使得它几乎无法阅读(无论是机器还是人类)。

Firefox 确认结果的类型为 text/plain

那么,如何在本应显示在浏览器中并由 servlet 生成的 text/plain 文档中获取换行符?

更新:

其他不起作用的东西:

plain/text中它完全依赖于浏览器的自动换行处理

例如:

在 Firefox 中

about:config

并设置这个

plain_text.wrap_long_lines;true

您无法从服务器处理它,您可能希望将其转换为带有纯文本和换行符的 html 或 css magic

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

@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 函数。

对不起,又是我的错。

我们配置了一个压缩 Servlet 过滤器,它删除了换行符。

没有那个过滤器 \n 工作正常。