JavaEE響應物件
1.響應物件型別與生命週期
和請求物件類似,JavaEE響應要實現javax.servlet.http.HttpServletResponse介面。
而且在web元件開發中,不需要servlet和jsp自己建立物件,他們由web容器自動建立,並傳遞給
servlet和jsp的服務方法doGet和doPost,在服務處理方法中直接使用請求物件即可。
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{}
2.響應物件的功能
(1).設定響應狀態碼
(2).設定響應頭資訊
(3).設定響應體資訊
(4).設定響應體傳送方法
3.設定響應狀態碼
(1).public void setStatus(int code)
設定響應的狀態碼
response.setStatus(404);
(2).public void setStatus(int code,String message)
設定響應的狀態碼,同時設定自定義的狀態訊息
response.setStatus(404,"URL not found!");
(3).public void sendError(int statuscode) throws IOException
向客戶端傳送指定的錯誤資訊碼,可以是任何數字
response.setCharacterEncoding("utf-8");
response.sendError(580);
(4).public void sendError(int statuscode,String message) throws IOException
向客戶端傳送指定的錯誤資訊碼和自定義狀態訊息
response.setCharacterEncoding("utf-8");
response.sendError(580,"自定義錯誤資訊");
4.設定響應頭資訊
(1).public void setHeader(String name,String value)
設定字串型別的響應頭的名稱和值
response.setHeader("Content-Type","text/html");
(2).public void setIntHeader(String name,String value)
設定整數型別的響應頭的名稱和值
response.setIntHeader("Content-Length",20);
(3).public void setDateHeader(String name,long date)
設定日期型別的響應頭
response.setDateHeader("Modify-Date",909920);
5.設定響應體資訊
(1).public void setContentType(String type)
設定響應內容型別MIME響應頭
response.setContentType("utf-8");
(2).public void setContentLength(int length)
設定響應體長度,以位元組為單位
response.setContentLength(10240);
(3).public setCharacterEncoding
設定響應字符集,包括響應狀態碼、響應頭和響應體
response.setCharacterEncoding("utf-8");
(4).public void setBufferSize(int size)
設定響應體快取位元組數
response.setBufferSize(1024);
6.設定響應體傳送方法
(1).文字型別響應體傳送方法
①.設定響應型別
response.setContentType("text/html");
②.設定響應字元編碼
response.setCharacterEncoding("utf-8");
③.取得字元流輸出流物件
PrintfWriter out=response.getWriter();
④.向流物件傳送文字資料
out.printfln(<title>java</title>);
⑤.清空流中快取的字元
out.flush();
⑥關閉流
out.close();
(2).二進位制型別響應體傳送方法
①.設定響應型別
response.setContentType("image/jpeg");
②.取得位元組流輸出流物件
OutputStream out=response.getOutputStream();
③.向流物件傳送位元組資料
out.println(200);
④.清空流中快取的位元組
out.flush();
⑤.關閉流
cn.close();