Servlet的重定向和转发特点
生活随笔
收集整理的這篇文章主要介紹了
Servlet的重定向和转发特点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
重定向
重定向的特點:
1.地址欄發生變化
2.重定向可以訪問其他站點(服務器)的資源
3.重定向是兩次請求,不可以使用Request對象共享數據
重定向的示例代碼:
package priv.lwx.javaex.servlet_demo.web.servlet.response;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;/*** 重定向演示代碼** @author liaowenxiong* @date 2022/1/10 11:01*/ @WebServlet("/response_demo01") public class ResponseDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 訪問ResponseDemo01,重定向到ResponseDemo02System.out.println("訪問了ResponseDemo01");// 設置重定向的狀態碼resp.setStatus(302);// 設置響應頭resp.setHeader("Location","/servlet_demo/response_demo02");} }或者
package priv.lwx.javaex.servlet_demo.web.servlet.response;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;/*** 重定向演示代碼** @author liaowenxiong* @date 2022/1/10 11:01*/ @WebServlet("/response_demo03") public class ResponseDemo03 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("訪問了ResponseDemo03");// 訪問ResponseDemo03,重定向到ResponseDemo02resp.sendRedirect("/servlet_demo/response_demo02");} }轉發
轉發的特點:
1.轉發地址欄路徑不變
2.轉發只能訪問當前服務器下的資源 ??同個服務器下的其它項目的資源也可以跳轉嗎?
3.轉發是一次請求,可以使用Request對象共享數據
轉發的示例代碼:
package priv.lwx.javaex.servlet_demo.web.servlet.request; /*** 請求轉發演示代碼** @author liaowenxiong* @date 2021/12/29 11:21*/import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebServlet(value = "/request_demo07") public class RequestDemo07 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo07被訪問了...");// 轉發到demo08資源/*RequestDispatcher dispatcher = request.getRequestDispatcher("/request-demo08");dispatcher.forward(request,response);*/// 轉發前存儲數據到request對象中request.setAttribute("msg","hello");request.getRequestDispatcher("/request-demo08").forward(request, response);} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Servlet的重定向和转发特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IntelliJ IDEA for Ma
- 下一篇: 绝对路径/相对路径