當在HttpServlet.doGet(...)
我從HttpServletResponse
的OutputStream
與如何關閉HttpServletResponse的OutputStream中發送錯誤
resp.getOutputStream();
雖然寫的是輸出流時發生異常,而不是數據,我想送一錯誤返回
resp.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, "My error message");
我該如何處理輸出流呢?
我可能必須關閉它。已寫入的數據是否發送到客戶端?我可以以某種方式丟棄該數據,以便客戶端只收到錯誤信息?
到目前爲止,我的觀察是:如果關閉流,我會得到IllegalStateException。如果我按原樣離開流(不關閉),並且只是調用sendError(),則客戶端無法回答(「沒有收到數據」)。所以我仍然不知道該怎麼做。 – Philipp
如果你在調用sendError之前關閉了流,那麼你將得到一個IllegalStateException。如果你沒有關閉流,那麼如果沒有爲該特定的響應代碼配置錯誤頁面,sendError中的String參數用於向客戶端顯示消息。 – Arjit
謝謝,我的問題是在正確設置郵件(從例外)... – Philipp