java - 为什么 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()
哪个应该隐式地这样做?
解决方案
如果您查看 HTML,您会在其中看到换行符。但是在浏览器中呈现时,浏览器会忽略空格并将其转换为单个空格。看到这个片段:
<body>
<div>
Hey
Jude
don't
be
afraid
</div>
</body>
推荐阅读
- perl - Perl 脚本为 awk 命令引发语法错误
- java - 在应用订单之前操作存储在 Firebase 文档字段中的值
- android - Oculus Quest 的麦克风权限
- scala - 如何使用 spark/scala 从一个数据帧中获取不在另一个数据帧中的行
- java - 使用 Google Cloud Messaging 时无法解析方法 addOnCompleteListener
- django - 根据 Django Rest Framework 中的用户组路由到不同的数据库
- php - 无法在cakephp中显示上标
- python - 在 Django 模板中使用会话身份验证在 Django 中实现 Vue RESTful API 调用
- reactjs - 从父 React Navigation V5 打开子抽屉
- reactjs - 如何在 reactjs 中使用框架显示搜索输入?