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

客戶端跳轉時用HttPservletResopse對象的sendRedirect函數實現,服務器端跳轉是使用RequestDispather對象的forward方法實現的。這二者之間的區別主要體如今三個方面:web

1. 使用服務器端跳轉時,客戶瀏覽器的地址欄並不會顯示目標地址的URL,而是用客戶端跳轉時,地址欄當中會顯示目標資源的URL;瀏覽器

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

3. 在進行客戶端跳轉和服務器端跳轉時,都須要指定目標資源的URL,若是這個路徑以「」開始。在客戶端跳轉當中「」表明的是應用服務器根目錄,而在服務器端跳轉當中表明的是應用程序根目錄。session

 

 

page = 頁面級別app

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

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

application = 應用級別函數

客戶端跳轉:服務器端將請求結果返回給客戶端,客戶端向服務器發出另外一次請求。在客戶端跳轉過程當中是兩次不一樣的請求。在地址欄中顯示的是最後一次請求地址。ui

客戶端跳轉能夠進行站外跳轉。spa

一、連接跳轉:<a href=」」></a>

二、表單提交

三、Response.sendRedirect(「3.jsp」);

四、<mata http-equiv=」refresh」, content=」3;2.jsp」/>

五、response.setHeader(「refresh」,」 3;2.jsp」);

六、客戶端跳轉「/」表明服務器跟路徑webapps

 

服務器端跳轉(容器內跳轉):可以自動的在服務器內部進行跳轉,這種跳轉對用戶來講是透明的。兩次跳轉時同一個request,在地址欄中顯示的事第一次頁面地址。

只能進行站點內跳轉。

一、<jsp:forward page=」」/>

二、pageContext.forward();

三、 request.getRequestDispatcher("1.jsp").forward(request,response);

三、服務器端跳轉「/」表明站點根路徑

轉載:http://blog.csdn.net/trialwalker/article/details/6958531

相關文章
相關標籤/搜索