請求重定向指的是一個web資源收到客戶端請求后,通知客戶端去訪問另外一個web資源,這稱之為請求重定向。302狀態碼和location頭即可實現重定向。
請求重定向最常見的應用場景就是用戶登錄。 下面的示例代碼從另一個頁面重定向到用戶登錄頁面:
package com.yyz.response;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("location", "/day06/register.html");
response.setStatus(302);
//上面兩句代碼等同于下面這句代碼:
//response.sendRedirect("/day06/register.html");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
請求重定向的兩個顯著的特點:1.向服務器發送了兩次請求。2.地址欄發生改變。由于服務器優化的一個重要原則是減少請求發送的次數,因而要少用請求重定向。