重定向與跳轉的區別

 重定向是一種特殊的頁面,它提供一種運作機制,使得人們在輸入該名稱進入條目或者點擊指向該名稱的內部鏈接時,系統能夠自動導航到重定向頁面內部指定的另一相關頁面中,從而實現相關頁面可以以多個名稱進行訪問。

響應重定向與轉發類似,但兩者有以下區別:

(1)當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因爲,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。

(2)重定向的速度比轉發慢,因爲瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。

響應重定向與請求轉發的區別:

(1)RequstDispatcher對象是一個Web資源的包裝器,可以用來把當前請求轉發到該資源。這種轉發是服務器端控制權的轉向,客戶端發來的請求將交由新的頁面進行處理。使用請求轉發,在客戶瀏覽器的地址欄中不會顯示轉發後的資源地址。使用請求轉發可以將前一個頁面的數據、狀態等信息傳到轉發的頁面。

(2)使用響應對象的sendRedirect()方法實際上是服務器向瀏覽器發送的一個特殊的響應頭,它命令瀏覽器連接到新的位置。因此,使用這種方法在瀏覽器的地址欄中可以看到地址的變化。重定向是作爲不同請求來看待的,因此,所有請求作用域的參數在重定向到下一個頁面時會失效。另外,使用sendRedirect()方法重定向時,資源不能位於WEB-INF目錄下。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章