為什么在做請(qǐng)求重定向的時(shí)候out.flush()會(huì)拋異常?
response頁(yè)面一旦調(diào)用一個(gè)flush()方法后,代表該response已經(jīng)提交, 執(zhí)行完畢,不能再使用
response是服務(wù)端對(duì)客戶端請(qǐng)求的一個(gè)響應(yīng),其中封裝了響應(yīng)頭、狀態(tài)碼、內(nèi)容等,服務(wù)端在把response提交到客戶端之前,會(huì)向緩沖區(qū)內(nèi)寫(xiě)入響應(yīng)頭和狀態(tài)碼,然后將所有內(nèi)容flush。
這就標(biāo)志著該次響應(yīng)已committed(提交)。對(duì)于當(dāng)前頁(yè)面中已經(jīng)committed(提交)的response,就不能再使用這個(gè)response向緩沖區(qū)寫(xiě)任何東西
(注:同一個(gè)頁(yè)面中的response.XXX()是同一個(gè)response的不同方法,只要其中一個(gè)已經(jīng)導(dǎo)致了committed,那么其它類似方式的調(diào)用都會(huì)導(dǎo)致 IllegalStateException異常)。
詳細(xì)的解釋在下面:
http://jorton468.blog.163.com/blog/static/72588135201102441617287/
2017-10-04
試了一下,用response.flushBuffer()方法后在用response.getWriter.write()方法輸入字符串還是可以的啊,按理說(shuō)不是應(yīng)該提交response了嗎。怎么還可以用它的方法呢
2017-03-21
非常感謝,好人一生平安!
2015-12-23
感謝分享