Servlet的重定向和转发特点
生活随笔
收集整理的這篇文章主要介紹了
Servlet的重定向和转发特点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
重定向
重定向的特點:
1.地址欄發(fā)生變化
2.重定向可以訪問其他站點(服務(wù)器)的資源
3.重定向是兩次請求,不可以使用Request對象共享數(shù)據(jù)
重定向的示例代碼:
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");// 設(shè)置重定向的狀態(tài)碼resp.setStatus(302);// 設(shè)置響應(yīng)頭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");} }轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)的特點:
1.轉(zhuǎn)發(fā)地址欄路徑不變
2.轉(zhuǎn)發(fā)只能訪問當前服務(wù)器下的資源 ??同個服務(wù)器下的其它項目的資源也可以跳轉(zhuǎn)嗎?
3.轉(zhuǎn)發(fā)是一次請求,可以使用Request對象共享數(shù)據(jù)
轉(zhuǎn)發(fā)的示例代碼:
package priv.lwx.javaex.servlet_demo.web.servlet.request; /*** 請求轉(zhuǎn)發(fā)演示代碼** @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被訪問了...");// 轉(zhuǎn)發(fā)到demo08資源/*RequestDispatcher dispatcher = request.getRequestDispatcher("/request-demo08");dispatcher.forward(request,response);*/// 轉(zhuǎn)發(fā)前存儲數(shù)據(jù)到request對象中request.setAttribute("msg","hello");request.getRequestDispatcher("/request-demo08").forward(request, response);} } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Servlet的重定向和转发特点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IntelliJ IDEA for Ma
- 下一篇: 绝对路径/相对路径