第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我應(yīng)該關(guān)閉servlet輸出流嗎?

我應(yīng)該關(guān)閉servlet輸出流嗎?

守候你守候我 2019-11-29 11:08:50
我應(yīng)該負(fù)責(zé)關(guān)閉HttpServletResponse.getOutputStream()(或getWriter()或什至inputstream),還是應(yīng)該將其留給容器?protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {    OutputStream o = response.getOutputStream();    ...     o.close(); //yes/no ?}
查看完整描述

2 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

您確實(shí)不需要這樣做。

經(jīng)驗(yàn)法則:如果您沒有使用自己創(chuàng)建/打開它new SomeOutputStream(),則不需要自己關(guān)閉它。例如new FileOutputStream("c:/foo.txt"),如果它是一個(gè),那么您顯然需要自己關(guān)閉它。

有些人仍然這樣做的原因僅僅是為了確保不會(huì)再將任何內(nèi)容寫入響應(yīng)主體。如果發(fā)生這種情況,則將IllegalStateException在appserver日志中導(dǎo)致,但這不會(huì)影響客戶端,因此客戶端仍會(huì)獲得正確的響應(yīng)。這也是一種較容易的調(diào)試,可以發(fā)現(xiàn)請(qǐng)求-響應(yīng)鏈中的潛在問(wèn)題,這些乍看之下不會(huì)發(fā)現(xiàn)。例如,其他事情正在將更多數(shù)據(jù)附加到響應(yīng)主體,位于鏈的更下游。

在初學(xué)者中看到的另一個(gè)原因是,他們只是想防止更多數(shù)據(jù)寫入響應(yīng)主體。當(dāng)JSP在響應(yīng)中不正確地發(fā)揮作用時(shí),您經(jīng)常會(huì)看到這種情況。他們只是忽略IllegalStateException日志中的。不用說(shuō),這個(gè)特定目的是有害的


查看完整回答
反對(duì) 回復(fù) 2019-11-29
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您打開了另一個(gè)InputStream對(duì)其進(jìn)行包裝,則可能要關(guān)閉該流,因?yàn)樵撊萜鲗⒖床坏桨b流的可見性,包裝流可能包含未提交的字節(jié)。理想情況下,如果它是BufferedOutputStream之類的,則只刷新()包裝的數(shù)據(jù)流,但是我發(fā)現(xiàn)在使用CipherOutputStream時(shí)此類不會(huì)完全寫入數(shù)據(jù)(在這種情況下,我有充分的理由相信)。在這種情況下,有必要調(diào)用close()以便客戶端獲得正確的響應(yīng)。

查看完整回答
反對(duì) 回復(fù) 2019-11-29
  • 2 回答
  • 0 關(guān)注
  • 1238 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)