为啥不去掉out.flush()就会有异常呢
response页面一旦调用一个flush()方法后,代表该response已经提交, 执行完毕,不能再使用
response是服务端对客户端请求的一个响应,其中封装了响应头、状态码、内容等,服务端在把response提交到客户端之前,会向缓冲区内写入响应头和状态码,然后将所有内容flush。
这就标志着该次响应已committed(提交)。对于当前页面中已经committed(提交)的response,就不能再使用这个response向缓冲区写任何东西
(注:同一个页面中的response.XXX()是同一个response的不同方法,只要其中一个已经导致了committed,那么其它类似方式的调用都会导致 IllegalStateException异常)。
flush和 sendrederect不能在一起使用 其实是不能卸载flush之后 以为 该方法 在内存中已有响应头 等代码了 如果 flush 将缓冲区清空随之 该方法完整性被破坏导致不能运行
我猜应该是 sendRedirect()方法会跳到其他界面,此时调用flush()方法清空缓冲区,因为已经没有缓冲区内容,所以抛出了异常