为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在做请求重定向的时候out.flush()会抛异常?

response页面一旦调用一个flush()方法后,代表该response已经提交, 执行完毕,不能再使用

response是服务端对客户端请求的一个响应,其中封装了响应头、状态码、内容等,服务端在把response提交到客户端之前,会向缓冲区内写入响应头和状态码,然后将所有内容flush。

这就标志着该次响应已committed(提交)。对于当前页面中已经committed(提交)的response,就不能再使用这个response向缓冲区写任何东西

(注:同一个页面中的response.XXX()是同一个response的不同方法,只要其中一个已经导致了committed,那么其它类似方式的调用都会导致 IllegalStateException异常)。

详细的解释在下面:

http://jorton468.blog.163.com/blog/static/72588135201102441617287/


正在回答

3 回答

试了一下,用response.flushBuffer()方法后在用response.getWriter.write()方法输入字符串还是可以的啊,按理说不是应该提交response了吗。怎么还可以用它的方法呢


0 回复 有任何疑惑可以回复我~

非常感谢,好人一生平安!

0 回复 有任何疑惑可以回复我~

感谢分享

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在做请求重定向的时候out.flush()会抛异常?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信