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();