JAVA 中 重定向


一、重定向:一個web資源收到客戶端的請求后,通知客戶端去訪問另外一個web資源,這稱之為請求重定向。

  運用場景:如用戶登錄。

       實現方式:通過response來實現:

  如:

    1.response.sendRedirect("/ServletDemo/Login.jsp");

二、轉發:一個web資源收到客戶端的請求后,通知服務器調用另外一個web資源進行處理。

       運用場景:MVC設計模式

       實現方式:通過request對象來實現:

  如:

    1.request.getRequestDispatcher("/Login.jsp").forward(request, response);       

三、重定向與轉發的區別:

     1.重定向是在客戶端完成的,轉發是在服務器完成的

     2.轉發只訪問一次服務器,重定向訪問兩次服務器,所以相比較而言,轉發對於服服務器的壓力更小;

     3.轉發只能將請求轉發給同一個web應用中的組件,重定向還可以重定向到其他網站;

     4.轉發 "/"的根目錄是當前web應用下的根目錄,而重定向是整個web站點的根目錄,如上面的示例代碼中,同樣跳轉到Login.jsp界面,但重定向卻要在前面加上項目名;

     5.重定向訪問過程結束后,瀏覽器地址欄中顯示的URL會發生改變變成重定向的目標URL,而轉發則不會;

     6.RequestDispatcher.forward方法的調用者與被調用者之間共享相同的request對象和response對象,它們屬於同一個訪問請求和響應過程.而HttpServletResponse.sendRedirect方法調用者與被調用者使用  各自的request對象和  

        response對象,它們屬於兩個獨立的訪問請求和響應過程。

         重定向與轉發的區別,通俗的來講,打個比方:張三找李四借錢,李四沒有錢,李四讓張三自己去找王五借,這是重定向;張三找李四借錢,李四雖然沒有錢,但李四從王五那借來錢,然后再借給張三,這是轉發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM