getWriter()如何在HttpServletResponse中运行?

pra*_*tap 8 java servlets

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

PrintWriter out = res.getWriter();
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 11

它不会使浏览器的连接-浏览器已经作出到服务器的连接.它可以缓冲您在内存中写入的内容,然后在请求结束时传输数据,或者确保所有标头都已写入网络连接,然后返回PrintWriter将数据直接写入该网络连接的数据.

在缓冲方案中,可能存在固定的缓冲区大小,如果超过该大小,则到目前为止写入的数据将"刷新"到网络连接.拥有一个缓冲区的最大好处是,如果在中途出现问题,您可以将响应更改为错误页面.如果您在出现问题时已经开始编写响应,那么您可以做很多事情来干净地指出错误.

(还有就是在任何内容之前传输内容长度的问题,对于保持活动连接.如果在完成响应之前用完了缓冲区,我会被可靠地通知响应将使用分块编码.)