可能重複:
Should one call .close() on HttpServletResponse.getOutputStream()/.getWriter()?我應該關閉servlet輸出流嗎?
我是負責關閉HttpServletResponse.getOutputStream()(或調用getWriter(),甚至InputStream的) 或者我應該留待容器 ?
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream o = response.getOutputStream();
...
o.close(); //yes/no ?
}
如果您打開另一個InputStream來封裝流,則可能需要關閉該流,因爲容器將無法識別包裝流(可能包含未提交的字節)。理想情況下,你只需flush()包裝流,如果它是像BufferedOutputStream,但我發現當使用CipherOutputStream,這個類不完全寫入數據(我相信在這種情況下有很好的理由)。 在這種情況下,有必要調用close()方法來獲取正確的響應。 –