JSP內置對象——Response對象

一、HTTP協議

GET請求協議格式 (get請求沒有請求體)
在這裏插入圖片描述POST請求協議格式
在這裏插入圖片描述

  1. 請求消息:客戶端發送給服務器端的數據
    * 數據格式:
    ①. 請求行
    ②. 請求頭
    ③. 請求空行
    ④. 請求體

  2. 響應消息:服務器端發送給客戶端的數據
    數據格式:
    ①. 響應行
    組成:協議/版本 響應狀態碼 狀態碼描述
    響應狀態碼:服務器告訴客戶端瀏覽器本次請求和響應的一個狀態。
    * 狀態碼都是3位數字
    * 分類:
    1xx:服務器就收客戶端消息,但沒有接受完成,等待一段時間後,發送1xx多狀態碼
    2xx:成功。代表:200
    3xx:重定向。代表:302(重定向),304(訪問緩存)
    4xx:客戶端錯誤。 * 404(請求路徑沒有對應的資源) * 405:請求方式沒有對應的doXxx方法
    5xx:服務器端錯誤。代表:500(服務器內部出現異常)

②. 響應頭:
格式:頭名稱: 值
常見的響應頭:
Content-Type:服務器告訴客戶端本次響應體數據格式以及編碼格式
Content-disposition:服務器告訴客戶端以什麼格式打開響應體數據
響應空行
響應體:傳輸的數據

二、功能:response對象主要用於對客戶端的請求進行迴應。
以及處理http的連接信息,例如設置http文件頭,設置cookie對象等。
3. 設置響應行
①. 格式:HTTP/1.1 200 ok
② 設置狀態碼:setStatus(int sc)
4. 設置響應頭:setHeader(String name, String value)

  1. 設置響應體:
    * 使用步驟:
    1. 獲取輸出流
    * 字符輸出流:PrintWriter getWriter()
    * 字節輸出流:ServletOutputStream getOutputStream()
    2. 使用輸出流,將數據輸出到客戶端瀏覽器

三、response對象方法:

方法 說明
addCookie 添加一個Cookie對象
addHeader 添加Http文件指定名字頭信息
containsHeader 判斷指定名字Http文件頭信息是否存在
encodeURL 使用sessionid封裝URL
flushBuffer 強制把當前緩衝區內容發送到客戶端
getBufferSize 返回緩衝區大小
getOutputStream 返回到客戶端的輸出流對象
sendError 向客戶端發送錯誤信息
sendRedirect 把響應發送到另一個位置進行處理
setContentType 設置響應的MIME類型
setHeade 設置指定名字的Http文件頭信息

三、重定向
在這裏插入圖片描述

//訪問responseDemo1這個資源會跳轉到responseDemo2資源
//1.設置狀態碼302
response.setStatus(302);
//2.1方法一:設置響應頭location
//response.setHeader("location","/JavaScript_Response_war_exploded/responseDemo2");

//2.2方法二:簡單的重定向方法
response.sendRedirect("/JavaScript_Response_war_exploded/responseDemo2");
//response.sendRedirect("https://www.baidu.com");

forward 和 redirect 區別

  • 重定向的特點:redirect response.sendRedirect(“目標絕對路徑”);
    1. 地址欄發生變化
    2. 重定向可以訪問其他站點(服務器)的資源
    3. 重定向是兩次請求。不能使用request對象來共享數據
  • 轉發的特點:forward request.getRequestDispatcher(“目標相對路徑”).forward(request,response);
    1. 轉發地址欄路徑不變
    2. 轉發只能訪問當前服務器下的資源(一種在服務器內部的資源跳轉方式)
    3. 轉發是一次請求,可以使用request對象來共享數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章