资源跳转--response重定向和request转发
生活随笔
收集整理的這篇文章主要介紹了
资源跳转--response重定向和request转发
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
瀏覽器向服務器發送請求,ATestServlet接收請求后,使用重定向/轉發兩種方式向BTestServlet進行資源跳轉
ATestServlet.java
@WebServlet(name = "ATestServlet", urlPatterns = "/chap3red_for_a") public class ATestServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 設置request范圍內的共享變量request.setAttribute("user", "admin");// 重定向至 BTestServletresponse.sendRedirect("/webpro/chap3red_for_b");// 轉發至 BTestServletrequest.getRequestDispatcher("/chap3red_for_b").forward(request, response);} }BTestServlet.java
@WebServlet(name = "BTestServlet", urlPatterns = "/chap3red_for_b") public class BTestServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Object obj = request.getAttribute("user");System.out.println("user = " + obj);} }代碼的運行流程圖
response重定向
request轉發
理解重定向與轉發
重定向:張三找李四借錢,李四沒錢,所以讓張三找王五借錢,張三從王五那借到了錢。張三很感激王五
轉發:張三找李四借錢,李四沒錢,李四就找王五借錢,并把借來的錢又借給了張三。張三很感激李四
張三相當于瀏覽器的請求,而李四、王五相當于處理請求的web資源
重定向與轉發的對比
| 代碼 | request.getRequestDispatcher(“url-patterns”).forward(request, response) | respond.sendRedirect(‘web資源相對于web的路徑’) |
| request對象觸發 | response對象觸發 | |
| 跳轉范圍 | 項目內資源跳轉 | 跨項目資源跳轉 |
| 數據是否丟失 | 不丟失 | 丟失 |
| 何時使用 | 項目內資源跳轉;web資源間傳遞request范圍內的數據 | 跨項目資源跳轉;頁面刷新問題 |
參考內容:
【動力節點】Servlet__老杜
總結
以上是生活随笔為你收集整理的资源跳转--response重定向和request转发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码实例--请求的转发:RequestD
- 下一篇: 参数(parameter)和属性(att