问答详情
源自:3-11 请求重定向与请求转发的区别

​为什么加了flush()方法之后 请求重定向和请求转发失效??

在response.jsp中加上flush方法之后 重定向和转发都失败 去掉之后就成功了

提问者:ANGELAMABY_ 2017-12-05 14:22

个回答

  • 慕数据8240494
    2017-12-05 14:51:04
    已采纳

    可能是缓存区的内容以输出

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

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

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

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

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