8

如果我打电话ServletResponse.flushBuffer()

我需要打电话吗ServletResponse.getOutputStream().close()

和/或 ServletResponse.getOutputStream().flush()

(对于ServletResponse.getWriter().close()

和/或ServletResponse.getWriter().flush())?

4

1 回答 1

8

两者flush()close()都是完全不同的方法:

冲洗()...

flush()方法用于将缓冲的响应刷新到客户端。它还将导致提交响应标头。

默认情况下,如果到达内部缓冲区,服务器容器将自动调用它。

如果要以自定义块发送响应,则应显式调用。

关() ...

close()方法用于关闭响应流,以便不再写入数据。

默认情况下,Server 容器会在 Servlet 生命周期结束时自动调用它。

如果您不想允许超出任何点的写入响应,则应显式调用。尝试这样做会引发 IOException。

于 2013-03-04T16:54:10.133 回答