課程
/后端開(kāi)發(fā)
/Java
/JAVA遇見(jiàn)HTML——JSP篇
為啥不去掉out.flush()就會(huì)有異常呢
2017-03-01
源自:JAVA遇見(jiàn)HTML——JSP篇 3-10
正在回答
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異常)。
flush和 sendrederect不能在一起使用 ?其實(shí)是不能卸載flush之后 以為 ?該方法 在內(nèi)存中已有響應(yīng)頭 等代碼了 如果 flush ?將緩沖區(qū)清空隨之 該方法完整性被破壞導(dǎo)致不能運(yùn)行
我猜應(yīng)該是 ?sendRedirect()方法會(huì)跳到其他界面,此時(shí)調(diào)用flush()方法清空緩沖區(qū),因?yàn)橐呀?jīng)沒(méi)有緩沖區(qū)內(nèi)容,所以拋出了異常
舉報(bào)
Java Web入門級(jí)教程JSP,帶你輕松的學(xué)習(xí)JSP基礎(chǔ)知識(shí)
1 回答clear()方法用在flush()之后會(huì)拋出異常的原因?
2 回答為什么重定向之前要去掉flush
1 回答flush方法之后 clearBuffer()方法還有用嗎?
4 回答out對(duì)象在flush之后調(diào)用clear就會(huì)拋出異常,jsp 為什么這么設(shè)計(jì)?而且既然有一個(gè)clearBuffer方法,為什么還要clear方法
2 回答flush 之后調(diào)用clear 拋異常的原因是什么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2020-12-11
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異常)。
2017-09-22
flush和 sendrederect不能在一起使用 ?其實(shí)是不能卸載flush之后 以為 ?該方法 在內(nèi)存中已有響應(yīng)頭 等代碼了 如果 flush ?將緩沖區(qū)清空隨之 該方法完整性被破壞導(dǎo)致不能運(yùn)行
2017-03-01
我猜應(yīng)該是 ?sendRedirect()方法會(huì)跳到其他界面,此時(shí)調(diào)用flush()方法清空緩沖區(qū),因?yàn)橐呀?jīng)沒(méi)有緩沖區(qū)內(nèi)容,所以拋出了異常