請求重定向指的是一個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.網址列發生改變。由於伺服器最佳化的一個重要原則是減少請求發送的次數,因而要少用請求重新導向。