我有一个生成一些文本的servlet。这样做的目的是为一个易于解析的应用程序提供一个简单的状态页面,因此我想避免使用html。
一切都运行良好,除了在这个过程中的某个地方吞没了换行符。
我尝试了\r
\r\n
\n
,但浏览器中的结果看起来总是一样的:看起来像换行符的所有东西都消失了,所有东西都在一个looooong行。这使得它几乎无法阅读(无论是机器还是人类)。
Firefox确认结果是text / plain
类型那么如何在text / plain文档中获取换行符,该文档应该在浏览器中显示并由servlet生成?
更新
其他不起作用的事情:
println
System.getProperty("line.separator")
答案 0 :(得分:1)
在plain/text
中,它完全依赖于浏览器的自动换行处理
例如:
在firefox中
about:config
并设置此
plain_text.wrap_long_lines;true
你无法从服务器处理它,你可能想用纯文本和换行符或css magic将其转换为html
答案 1 :(得分:1)
正如@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
函数。
答案 2 :(得分:1)
对不起,再一次是我的错误。
我们配置了压缩Servlet过滤器,删除了换行符。
没有那个过滤器\n
就可以了。