Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> IIS中的兩種服務器端網頁重定向方法

IIS中的兩種服務器端網頁重定向方法

日期:2017/2/8 10:31:33      編輯:關於服務器
在IIS5中提供了兩種服務器端網頁重定向(或者說轉向)的方法,一個是Server.Transfer方法, 另外一個是Server.Execute方法。說它們是服務器端重定向,是因為在不同頁面之間的轉向是直接在服務器端完成的, 客戶端只能看到結果,而不能看到轉向的過程。 這同以往我們在IIS4使用的Response.Redirect 方法是不同的。
     以前, 當我們需要從一個頁面轉向到另外一個頁面的時候,我們一般都會使用Response對象的Redirect方法, 比如, 在我們的某個需要用戶驗證的頁面,當用戶沒有登陸的時候, 就轉到用戶登陸頁面,簡單的例子代碼如下:
content.asp

<%
If Session("isLogin")="" Then
 Response.Redirect "Login.asp"
End If

'正常的內容

%>


那麼,其實Response.Redirect方法, 是返回給浏覽器一個Http Header狀態為302的標記碼,

HTTP 1.0 302 Object Moved
Location URL

這樣,實際上是浏覽器請求服務器的content.asp 文件,content.asp文件經過處理以後告訴浏覽器,你先訪問login.asp文件, 於是浏覽器再向服務器發送一個到login.asp頁面的請求。所以, 實際上是轉了一個彎。這樣, 當客戶端網絡狀況不是很好的情況下,兩次請求會大大的降低應用程序的反應速度,甚至占用多余的帶寬。特別是,當需要傳遞參數的時候,也會有一些問題。

而在IIS5中, 提供了Server.Transfer和Server.Execute方法。

這兩種方法,都是在服務器間完成轉向的,因此可以減少客戶端的網絡帶寬的占有,但是因為服務器端要保存程序1的一些狀態,也會消耗一定的內存。

//本文來自電腦軟硬件應用網www.45it.com轉載請注明
那麼Server.Transfer和Server.Execute又有什麼不同呢?

通過例子來說明吧,這裡有兩個文件,file1.asp和file2.asp

我們都是要在file1.asp裡面轉向到file2.asp


用Tansfer方法時:

file1.asp

<%
Response.Write "File 1 Header<br>"

Server.Transfer "file2.asp"
'到這裡就停止執行下面的語句,轉向了

Response.Write "File 1 Footer<br>"

%>

file2.asp

<%
Response.Write "小雨在線"
%>


所有,當我們執行file1.asp文件時, 我們得到的結果是

File 1 Header
小雨在線

因為,當程序遇到Transfer方法時,會停止執行後面的語句,轉而執行轉向的程序

當使用Execute方法時:

file1.asp

<%
Response.Write "File 1 Header<br>"

Server.Execute "file2.asp"
'到這裡執行file2.asp,完成之後繼續執行剩下的內容

Response.Write "File 1 Footer<br>"

%>

file2.asp

<%
Response.Write "File 2"
%>


所有,當我們執行file1.asp文件時, 我們得到的結果是

File 1 Header
File2
File 1 Footer

因為,當程序遇到Execute方法時,會執行轉向的程序,完成之後再繼續執行第一頁的剩下的內容。

其實Execute方法就像我們經常寫的子程序一樣,類似於子程序調用。

如下圖所示:

Copyright © Windows教程網 All Rights Reserved