为什么 PrintWriter.println() 在写入 HTML 时不终止行?

Why doesn't PrintWriter.println() terminate lines when writing to HTML?

如果我使用方法 println() 写入 fileconsole,它会写入一条消息并终止。很容易。但现在我希望它使用 Servlet class 写入 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
...

但这就是我得到的:

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

如果您查看 HTML,您会在其中看到换行符。但是当在浏览器中呈现时,浏览器会忽略白色 space 并将其转换为单个 space。请参阅此代码段:

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