Transfer重定向

一、Server.Transfer與Response.Redirect的執行過程

Response.Redirect:

執行過程:瀏覽器ASP文件請求--服務器執行--遇到response.redirect語句--服務器發送response.redirect後面的地址給客戶機端的瀏覽器--瀏覽器請求執行新的地址--服務器執行。也就是說,使用Response.Redirect方法時重定向操作發生在客戶端,總共涉及到兩次與服務器的通信(兩個來回):第一次是對原始頁面的請求,得到一個302應答,第二次是請求302應答中聲明的新頁面,得到重定向之後的頁面。 

Server.Transfer:

執行過程:

Server.Transfer方法把執行流程從當前的ASPX文件轉到同一服務器上的另一個ASPX頁面。調用Server.Transfer時,當前的ASPX頁面終止執行,執行流程轉入另一個ASPX頁面,但新的ASPX頁面仍使用前一ASPX頁面創建的應答流。如果用Server.Transfer方法實現頁面之間的導航,瀏覽器中的URL不會改變,因爲重定向完全在服務器端進行,瀏覽器根本不知道服務器已經執行了一次頁面變換。 默認情況下,Server.Transfer方法不會把表單數據或查詢字符串從一個頁面傳遞到另一個頁面,但只要把該方法的第二個參數設置成True,就可以保留第一個頁面的表單數據和查詢字符串。

二、實例

運行之後顯示session.aspx界面信息

 點擊button按鈕後,保留界面信息,跳轉到session1的界面,與上一界面的信息同時顯示,而此時服務器已經進行了重定位,但是瀏覽器中的URL並沒有發生變化

 三、優缺點

優點:

一、它在服務器端直接重定向,不用像response.Redirect一樣先與瀏覽器通信再重定向,效率高。

二、它可以傳遞上一個頁面的提交值。比如:A頁面提交值到B頁面,B頁面Transfer到C頁面,C頁面同樣可以收到A頁面提交的值。

三、可以隱藏url。

缺點:

不能刷新頁面,比如:A頁面提交登錄信息到B頁面,B頁面處理後Transfer再到A,A頁面得不到刷新。如果A、B頁面不在同一個目錄下,我們還會發現更多意想不到的結果,使用相對鏈接的圖片、超鏈接的指向都改變了,造成這種原因是B頁面讀取A頁面內容卻以B頁面的身份輸出,所以路徑改變了。

 

 

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