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

response.sendRedirect之前不去掉flush方法就会有异常呢

为啥不去掉out.flush()就会有异常呢

提问者:慕用7215365 2017-03-01 20:27

个回答

  • 努力学java嘿嘿哈吼
    2020-12-11 17:19:17

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

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

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

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


  • 无处可归的归人
    2017-09-22 16:40:13

    flush和 sendrederect不能在一起使用  其实是不能卸载flush之后 以为  该方法 在内存中已有响应头 等代码了 如果 flush  将缓冲区清空随之 该方法完整性被破坏导致不能运行


  • iceWang
    2017-03-01 22:09:46

    我猜应该是  sendRedirect()方法会跳到其他界面,此时调用flush()方法清空缓冲区,因为已经没有缓冲区内容,所以抛出了异常