问答详情
源自:3-10 response对象

为什么在做请求重定向的时候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/


提问者:windy_yong 2015-03-21 15:03

个回答

  • 蓝胖子的编程梦
    2017-10-04 23:48:57

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


  • 开黑小分队
    2017-03-21 19:34:53

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

  • 小辉_0004
    2015-12-23 23:30:13

    感谢分享