首页 > 解决方案 > 为什么 PrintWriter.println() 在写入 HTML 时不终止行?

问题描述

如果我使用println()写入文件控制台的方法,它会写入一条消息并终止。很容易。但现在我希望它使用Servlet类写入HTML页面。代码:

public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter pw = resp.getWriter();
        for (int i = 0; i < 1000; i++) {
            pw.println("hello " + i);
        }
}

我所期望的是在每一行中打印消息(就像我使用过<br>的一样),如下所示:

hello 0
hello 1
hello 2
hello 3
...

但这就是我得到的: 在此处输入图像描述

有人能告诉我为什么不是每条消息都打印在新行吗?如果我使用相同的代码写入文件system.out,它将获得所需的输出。这意味着为什么我需要让<br>这段代码以这种方式工作,甚至认为我正在使用println()哪个应该隐式地这样做?

标签: javaservletsline-breaksprintwriter

解决方案


如果您查看 HTML,您会在其中看到换行符。但是在浏览器中呈现时,浏览器会忽略空格并将其转换为单个空格。看到这个片段:

<body>
<div>
Hey
Jude
don't
be
afraid
</div>
</body>


推荐阅读