課程
/后端開發
/Java
/JAVA遇見HTML——JSP篇
為啥不去掉out.flush()就會有異常呢
2017-03-01
源自:JAVA遇見HTML——JSP篇 3-10
正在回答
response頁面一旦調用一個flush()方法后,代表該response已經提交, 執行完畢,不能再使用
response是服務端對客戶端請求的一個響應,其中封裝了響應頭、狀態碼、內容等,服務端在把response提交到客戶端之前,會向緩沖區內寫入響應頭和狀態碼,然后將所有內容flush。
這就標志著該次響應已committed(提交)。對于當前頁面中已經committed(提交)的response,就不能再使用這個response向緩沖區寫任何東西
(注:同一個頁面中的response.XXX()是同一個response的不同方法,只要其中一個已經導致了committed,那么其它類似方式的調用都會導致 IllegalStateException異常)。
flush和 sendrederect不能在一起使用 ?其實是不能卸載flush之后 以為 ?該方法 在內存中已有響應頭 等代碼了 如果 flush ?將緩沖區清空隨之 該方法完整性被破壞導致不能運行
我猜應該是 ?sendRedirect()方法會跳到其他界面,此時調用flush()方法清空緩沖區,因為已經沒有緩沖區內容,所以拋出了異常
舉報
Java Web入門級教程JSP,帶你輕松的學習JSP基礎知識
1 回答clear()方法用在flush()之后會拋出異常的原因?
2 回答為什么重定向之前要去掉flush
1 回答flush方法之后 clearBuffer()方法還有用嗎?
4 回答out對象在flush之后調用clear就會拋出異常,jsp 為什么這么設計?而且既然有一個clearBuffer方法,為什么還要clear方法
2 回答flush 之后調用clear 拋異常的原因是什么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-12-11
response頁面一旦調用一個flush()方法后,代表該response已經提交, 執行完畢,不能再使用
response是服務端對客戶端請求的一個響應,其中封裝了響應頭、狀態碼、內容等,服務端在把response提交到客戶端之前,會向緩沖區內寫入響應頭和狀態碼,然后將所有內容flush。
這就標志著該次響應已committed(提交)。對于當前頁面中已經committed(提交)的response,就不能再使用這個response向緩沖區寫任何東西
(注:同一個頁面中的response.XXX()是同一個response的不同方法,只要其中一個已經導致了committed,那么其它類似方式的調用都會導致 IllegalStateException異常)。
2017-09-22
flush和 sendrederect不能在一起使用 ?其實是不能卸載flush之后 以為 ?該方法 在內存中已有響應頭 等代碼了 如果 flush ?將緩沖區清空隨之 該方法完整性被破壞導致不能運行
2017-03-01
我猜應該是 ?sendRedirect()方法會跳到其他界面,此時調用flush()方法清空緩沖區,因為已經沒有緩沖區內容,所以拋出了異常