通過response實現重定向(四)
阿新 • • 發佈:2019-01-10
1. 重定向:瀏覽器向伺服器傳送請求,伺服器給它響應302狀態碼,並返回Location值,瀏覽器得到location值後,向ocation值重新發送請求。
2. 伺服器端要做兩件事:
1)狀態碼 要是 302
2)響應頭 location 要指定。響應頭name是不區分大小寫,value獲取的值。一個name可以對應多個value。
package com.it.servlet.response; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Demo1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設定狀態碼為302 response.setStatus(302); //設定響應頭location的值 //response.setHeader("location", "http://www.baidu.com"); //response.setHeader("location", "index.jsp"); response.setHeader("location", "/day8_1/index.jsp"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
重定向時,既可以訪問站內資源,也可以訪問站外資源。
在真實開發中完成重定向只要response.sendRedirect(String location)方法。
package com.it.servlet.response; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Demo1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //在真實開發中要想完成重定向只需要sendRedirect response.sendRedirect("/day8_1/index.jsp"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }