客戶端跳轉與伺服器端跳轉

2021-06-28 13:53:50 字數 1341 閱讀 7501

結果:

session屬性:張三

request屬性:null

由於是客戶端跳轉,跳轉後的位址列是會改變的。但是現在只能接收session屬性範圍的內容,而request屬性範圍的內容是無法接收到,這是因為request屬性範圍只有在伺服器端跳轉中才可以使用。

在servlet中沒有像jsp中的指令,所以要想執行伺服器端跳轉,就必須依靠requestdispatcher介面完成。

這兩者之間的區別主要體現在三個方面:

1. 使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位址列當中會顯示目標資源的url;

2. 伺服器端跳轉是由客戶端傳送乙個請求,請求乙個伺服器資源——如jsp和servlet——,這個資源又將請求轉到另乙個伺服器資源,然後再給客戶端傳送 乙個響應,也就是說伺服器端跳轉是客戶端傳送一次請求,伺服器端給出一次響應;而客戶端跳轉的流程則不同。客戶端同樣是傳送乙個請求給伺服器端資源,這個 伺服器資源會首先給客戶端乙個響應,客戶端再根據這個響應當中所包含的位址,再次向伺服器端傳送乙個請求,也就是說客戶端跳轉是兩次請求,兩次響應;

3. 在進行客戶端跳轉和伺服器端跳轉時,都需要指定目標資源的url,如果這個路徑以「」開始。在客戶端跳轉當中「」代表的是應用伺服器根目錄,而在伺服器端跳轉當中代表的是應用程式根目錄。

page = 頁面級別

request = 請求級別(與伺服器端跳轉配合使用)

session = 會話級別(客戶端跳轉(伺服器端跳轉也可,但是客戶端跳轉更加突出了session的作用範圍))

客戶端跳轉客戶端跳轉可以進行站外跳轉。

2、表單提交

3、response.sendredirect(「3.jsp」);

4、5、response.setheader(「refresh」,」 3;2.jsp」);

伺服器端跳轉(容器內跳轉)只能進行站點內跳轉。

1、2、pagecontext.forward();

3、 request.getrequestdispatcher("1.jsp").forward(request,response);

3、伺服器端跳轉「/」代表站點根路徑

客戶端跳轉與伺服器端跳轉

客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...

客戶端跳轉與伺服器端跳轉

客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...

客戶端跳轉與伺服器端跳轉的區別

一 客戶端跳轉 客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用...