一.重定向的理解
>客戶端發送請求給服務器,服務器返回302並帶一個地址給瀏覽器,讓瀏覽器去請求這個地址,這個過程就是重定向
比如:有3個人分別為A,B,C;A去請求B幫忙做一件事,B無能為力,B把C的地址給A,讓A去請求C做這件事。說簡單點就是:找別人幫忙
二.重定向的注意事項
>服務器返回302給瀏覽器時,還會帶一個地址,這個地址以響應頭的形式發送,而且頭的名稱必須為Location
>重定向的過程中,瀏覽器發送了兩個請求
三.流程圖示例
四.代碼示例:
package cn.xxx.Servlet; 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 BServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設置location響應頭 response.setHeader("Location", "/Demo01/CServlet"); response.setStatus(302); //發送狀態碼 } }
package cn.xxx.Servlet; 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 CServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("CServlet"); } }