?
所有Servlet響應都實現ServletResponse接口。ServletResponse接口主要有以下方法:
(1)從Servlet中可以通過getWriter方法取得PrintWriter對象,來輸出字符數據。從Servlet中可以通過getOutputStream方法取得ServletoutputStream對象。ServletOutputStream既可以輸出字符數據,也可以輸出MIME格式的二進制數據。如果getWriter方法已經被使用過,當使用getOutputStream時,會有java.lang.IllegalStateException例外拋出。
(2)setContentType方法:在響應中可以表明內容格式和長短。
(3)setBufferSize方法:設置Web容器的緩沖器大小; getBufferSize方法返回Web容器的緩沖器大小; resetBuffer方法清空并重置緩沖器,使用reset方法清空緩沖器、狀態頭信息,使用flushBuffer方法將緩沖器內的所有輸出內容向客戶傳遞。使用isCommitted方法判斷是否響應已經被履行。“履行”的定義是指狀態碼冬耕 信息已經被寫入響應。
(4)setLocal方法設定響應的地域信息,主要在Web程序的國際貨幣國際化時使用。這個方法應該在getWriter之前被使用。默認的Web服務器的地域信息。
HttpServletResponse繼承了ServletResponse接口,并提供了與Http協議有關的方法,這些方法的主要功能是設置HTTP狀態碼和管理Cookie。
(1)setStatus方法用來設置Servlet向客戶端返回的狀態碼,它用來設置沒有出錯的狀態。如果Servlet運行出錯,Servlet可以使用sendError方法設置狀態碼,如sendError(int sc)方法設置錯誤狀態代碼。sendError(int sc,String msg)方法除了設置狀態碼,還向客戶發出一條錯誤信息。
(2)setHeader可以指定特定名稱的頭信息的值,addDateheader,addIntHeader,setDateHeader,setIntHeader可以加入或理性特定時間或整數型頭信息。
(3)addCookie方法可以在Web服務器響應中加入Cookie對象,這個對象將被瀏覽器所保存。Cookie機制也被用來維護會話狀態。
(4)sendRedirect方法向客戶發出臨時重新導向的響應。它生成的響應狀態碼為302。該響應給了客戶一個新的URL風趣。如果緩沖器已經被清空,這個方法會彈出一個IllegalStateException例外