JSP中頁面的轉發與重定向

頁面的轉發:

  轉發的作用:在多個頁面交互過程中實現請求數據的共享

        轉發的實現:RequestDispatcher對象,forward()方法

RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
    		  rd.forward(request, response);
//rd = request.getRequestDispatcher("welcome.jsp").forward(request, response);
將當前接收的用戶請求,發送給服務器的其他資源使用

頁面實現了跳轉,請求的信息是否也一起轉移呢?答案是不。Because --->

request,請求的生命週期很短。

  request.getParameter("uname");//傳值null

  使用範圍:在一次請求範圍內,若用完了,則銷燬了。

  新的請求,則request中沒有數據。

頁面的重定向

  重定向:response

  跳轉到一個新的頁面。

  不會傳遞上一次請求參數。

response.sendRedirect("URL");
//URL後可以拼接參數。例如:----->
response.sendRedirect("ch0203.jsp?uname="+uname+"&pwd="+pwd);
如何才能實現頁面跳轉後,請求信息不丟失呢?
通過轉發實現,把內容轉發到一個新的頁面。
使用轉發取代重定向傳遞數據。
轉發和重定向的區別:
1.地址欄信息不同
都是在ch0202.jsp中作用(頁面跳轉到ch0203.jsp)
轉發地址欄的信息:

重定向地址欄的信息:

2.轉發可以傳遞信息,重定向不能

轉發在應用服務器實現,信息可以多個頁面數據的傳遞,地址欄的信息不會發生變化

重定向在客戶端實現,沒有內置對象等,只有一個頁面,不能傳遞信息,地址欄信息會發生變化

3.轉發是在服務器端發揮作用,通過forward方法將提交信息在多個頁面間進行傳遞

   轉發市在服務器內部控制權的轉移,客戶端瀏覽器的地址欄不會顯示出轉向後的地址

   重定向時在客戶端發揮作用,通過請求新的地址實現頁面轉向

   重定向時通過瀏覽器重新請求地址,在地址欄中可以顯示轉向後的地址

發佈了127 篇原創文章 · 獲贊 61 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章