简体   繁体   中英

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

If I use method println() for writing to a file or console , it writes a message and terminates. Easy enough. But now I want it to write to HTML page using Servlet class. Code:

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);
        }
}

What I was expected is to get message printed in each line (as if I used <br> ), like this:

hello 0
hello 1
hello 2
hello 3
...

But this is what I got: 在此处输入图像描述

Can someone tell me why isn't every message printed in new line? While if I had used this same code for writing to a file or system.out , it would get desired output. Meaning why I need to put <br> for this code to work that way, even thought I am using println() which should implicitly do that?

If you look at the HTML, you'll see newlines in there. But when rendered in a browser, the browser ignores whitespace and converts it to a single space. See this snippet:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM