1. 程式人生 > >請求轉發和重定向

請求轉發和重定向

一、請求重定向(二次請求)

在這裡插入圖片描述

(1)之前的寫法
response.setStatus(302);
response.setHeader("Location", "login_success.html");
(2)現在的請求重定向寫法
//重定向寫法: 重新定位方向 引數即跳轉的位置
response.sendRedirect("login_success.html");

1. 地址上顯示的是最後的那個資源的路徑地址

2. 請求次數最少有兩次, 伺服器在第一次請求後,會返回302 以及一個地址, 瀏覽器在根據這個地址,執行第二次訪問。

3. 可以跳轉到任意路徑。 不是自己的工程也可以跳。

4.
效率稍微低一點, 執行兩次請求。 5. 後續的請求,沒法使用上一次的request儲存的資料,或者 沒法使用上一次的request物件,因為這是兩次不同的請求。

二、請求轉發(一次請求)

在這裡插入圖片描述

//請求轉發的寫法: 引數即跳轉的位置
request.getRequestDispatcher("login_success.html").forward(request, response);

1. 地址上顯示的是請求servlet的地址。  返回200 ok

2. 請求次數只有一次, 因為是伺服器內部幫客戶端執行了後續的工作。 

3. 只能跳轉自己專案的資源路徑 。  

4. 效率上稍微高一點,因為只執行一次請求。 

5.
可以使用上一次的request物件。