java - getWriter() 如何在 HttpServletResponse 中发挥作用?

标签 java servlets

在方法service()中,我们使用

PrintWriter out = res.getWriter();

请告诉我它如何返回 PrintWriter 类对象,然后连接到浏览器并将数据发送到浏览器。

最佳答案

它不会建立到浏览器的连接——浏览器已经建立了到服务器的连接。它要么缓冲你在内存中写入的内容,然后在请求结束时传输数据,要么确保所有 header 都已写入网络连接,然后返回一个写入数据的 PrintWriter直接连接到该网络连接。

在缓冲场景中,可能有一个固定的缓冲区大小,如果超过这个大小,到目前为止写入的数据将“刷新”到网络连接。拥有缓冲区的最大优势在于,如果中途出现问题,您可以更改对错误页面的响应。如果您已经开始在出现问题时编写响应,那么您可以做很多事情来清楚地指出错误。

(还有在任何内容之前传输内容长度的问题,以保持连接。如果您在完成响应之前用完缓冲区,我会可靠地告知响应将使用分块编码。 )

关于java - getWriter() 如何在 HttpServletResponse 中发挥作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/750488/

相关文章:

java - 如何返回一个新列表,其中包含一个列表中未在另一个列表中找到的对象

html - 如何使用 Servlet 流式传输 MP3、MP4、AVI 等音频/视频文件

java - @PostConstruct 和 @PreDestroy 注解的实时应用程序使用

java - javax.security.auth.callback.* 的目的是什么?

java - 使用 GSON 解析 JSON 对象列表

java - 在java中按名称获取颜色

java - Twilio 线程消息

java - Web 应用程序需要记住对象状态 - 需要解决方案的建议

java - web.xml 中的欢迎文件与 spring 不工作?

java - 无法使用 Web 内容文件夹中图像的 getClass.getResource 创建 URL