瀏覽器的頁面跳轉具體分為伺服器端跳轉和客戶端跳轉兩類。
一、伺服器跳轉
1、解釋
所謂伺服器端跳轉就是指位址列內容不變(即客戶端瀏覽器的位址列不會顯示跳轉後位址的url)。由客戶端傳送乙個請求,請求乙個伺服器資源,這個資源又將請求跳轉到另乙個伺服器資源,然後再給客戶端傳送乙個響應,即伺服器端跳轉。所以,這種跳轉客戶端傳送一次request,伺服器端給出一次response。
2、跳轉方法
request.getrequestdispatcher(「success.html」).forward(request,response)。
它是只要執行到此語句之後則立刻進行跳轉,可以傳遞request屬性。即跳轉到指定的頁面執行其他**,執行完畢後返回接著執行**語句後的**。
二、客戶端跳轉
1、解釋
所謂客戶端跳轉是指位址列內容發生改變(位址列當中會顯示目標資源的url)。當客戶端client向伺服器端server傳送乙個請求,要求獲取乙個資源時,在server接收到這個請求後發現請求的這個資源實際存放在另乙個位置,於是server在返回的response中寫入那個請求資源的正確的url,並設定reponse的狀態碼為301(表示這是乙個要求瀏覽器重定向的response),當client接受到這個response後就會根據新的url重新發起請求。重定向有乙個典型的特徵,即,當乙個請求被重定向以後,最終瀏覽器上顯示的url往往不再是開始時請求的那個url了。所以客戶端共傳送兩次請求request,伺服器端給出兩次回應response。
2、跳轉方法
response.sendredirect(「fail.html」)
所有頁面執行完之後再進行跳轉,不能傳遞request範圍的屬性,但是可以通過位址重寫的方式向跳轉頁傳遞引數。
三、路徑跳轉問題
頁面訪問請求中(客戶端跳轉) , 絕對路徑需要自己加上工程名 , 相對路徑相當於在工程根目錄
絕對路徑: /… 相當於 http:\localhost:8080/…
相對路徑: … 相當於 http:\localhost:8080/cart/…
伺服器方法中 (伺服器跳轉), 絕對路徑相當於工程根目錄 , 相對路徑相當於當前路徑的同級目錄
絕對路徑: /… 相當於 http://localhost:8080/cart/…
相對路徑: … 相當於 http://localhost:8080/cart/list/…
客戶端跳轉與伺服器端跳轉
客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...
客戶端跳轉與伺服器端跳轉
客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...
客戶端跳轉與伺服器端跳轉
結果 session屬性 張三 request屬性 null 由於是客戶端跳轉,跳轉後的位址列是會改變的。但是現在只能接收session屬性範圍的內容,而request屬性範圍的內容是無法接收到,這是因為request屬性範圍只有在伺服器端跳轉中才可以使用。在servlet中沒有像jsp中的指令,所...