Java ServletResponse#flushBuffer()包含哪些内容?
如果我打电话 我需要打电话吗 和/或 (同上) 和/或)两种方法都是完全不同的: 刷新()Java ServletResponse#flushBuffer()包含哪些内容?,java,servlets,response,flush,Java,Servlets,Response,Flush,如果我打电话 我需要打电话吗 和/或 (同上) 和/或)两种方法都是完全不同的: 刷新() flush()方法用于将缓冲响应刷新到客户端。它还将导致提交响应头 默认情况下,如果到达内部缓冲区,服务器容器将自动调用此函数 如果希望以自定义块的形式发送响应,则应显式调用 close() close()方法用于关闭响应流,以便不再写入数据 默认情况下,服务器容器将在Servlet生命周期结束时自动调用它 如果您不想让写入响应超出任何一点,则应该显式调用。尝试这样做将引发IOException。这感觉不
flush()
方法用于将缓冲响应刷新到客户端。它还将导致提交响应头
默认情况下,如果到达内部缓冲区,服务器容器将自动调用此函数
如果希望以自定义块的形式发送响应,则应显式调用
close()
close()
方法用于关闭响应流,以便不再写入数据
默认情况下,服务器容器将在Servlet生命周期结束时自动调用它
如果您不想让写入响应超出任何一点,则应该显式调用。尝试这样做将引发IOException。这感觉不太对。。。难道你不想在开始的时候让你的编写器,在你做你的事情的时候把它保存在一个成员变量中,然后在你完成的时候调用flush并关闭这个成员变量吗?你可以使用其中一个,不需要两者都使用。如果您使用OutputStream,应该将其关闭。@RobertHarvey实际上,我使用的是
IOUtils.copyragle(myInputStream,response.getOutputStream())代码>。问题是,response.flushBuffer()
会自动关闭内部流吗?Tomcat有一个方法负责关闭响应流。你需要关闭你做的那些。那么呢?我更新了我的答案。请看一下。我在“网络”选项卡中看不到部分响应。它只显示一个带有完整响应的请求。如何在客户端验证这一点?