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

为什么flush和sendRedirect共用?

在重定向之前调用了flush方法,访问报错

提问者:java_前端 2017-04-04 22:42

个回答

  • 凉夏TIME
    2017-04-06 01:22:55

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

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

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

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