四Response對象 Response對象用於向客戶端浏覽器發送數據
用戶可以使用該對象將服務器的數據以HTML的格式發送到用戶端的浏覽器
它與Request組成了一對接收
發送數據的對象
這也是實現動態的基礎
下面介紹它常用的屬性和方法
Buffer屬性
該屬性用於指定頁面輸出時是否要用到緩沖區
默認值為False
當它為True時
直到整個Active Server Page執行結束後才會將結果輸出到浏覽器上
如
<%Response
Buffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
for i=
to
response
write(i &
<br>
)
next
%>
</body>
</html>
這頁執行時
整個主頁的所有內容會同時顯示在浏覽器上
這個主頁會存在緩存區中直到腳本執行結束
Expires屬性
該屬性用於設置浏覽器緩存頁面的時間長度(單位為分)
必須在服務器端刷新
通過如下設置
<%Response
Expires=
%>
通過在ASP文件中加入這一行代碼
要求每次請求是刷新頁面
因為Response一收到頁面就會過期
Write方法
該方法把數據發送到客戶端浏覽器
如
<%Response
write
Hello
world!
%>
Redirect方法
該方法使浏覽器可以重新定位到另一個URL上
這樣
當客戶發出Web請求時
客戶端的浏覽器類型已經確定
客戶被重新定位到相應的頁面
如
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<form aciton=
formjump
asp
method=
post
>
<select name=
wheretogo
>
<option selected value=
fun
>Fun</option>
<option value=
news
>News</option>
<option value=
sample
>Sample</option>
</select>
<input type=submit name=
jump
value=
Jump
>
</form>
</body>
</html> 以上是提交的表單
下面是處理表單的文件formjump
asp
<%response
buff=true%>
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<%
thisurl=
;
where=Request
form(
wheretogo
)
Select Case where
case
fun
response
redirect thisurl &
/fun/default
asp
case
news
response
redirect thisurl &
/news/default
asp
case
sample
response
redirect thisurl &
/sample/default
asp
End Select
%>
</body>
<html> 這個例子當用戶選擇了以後
按
Jump
按鈕提交表單
服務器接到申請後調用formjump
asp判斷後定位到相應的URL
不過這裡有一點要注意
HTTP標題已經寫入到客戶浏覽器
任何HTTP標題的修改必須在寫入頁內容之前
遇到這種問題時
可以如下做
在文件的開始<@ Language=
>後寫
Response
Buffer=True
在結尾定
Response
Flush
這裡Flush是Response的一個方法
它必須是Buffer屬性設置為True時才能使用
否則會產生一個運行模式錯誤
另外一個Clear方法也是用於清除被緩存的頁面
同樣要Buffer屬性設置為True時才能使用
End方法
該方法用於告知Active Server當遇到該方法時停止處理ASP文件
如果Response對象的Buffer屬性設置為True
這時End方法即把緩存中的內容發送到客戶並清除沖區
所以要取消所有向客戶的輸出民
可以先清除緩沖區
然後利用End方法
如
<%
Response
buffer=true
On error resume next
Err
clear
if Err
number<>
then
Response
Clear
Response
End
end if
%>
五Server 對象: Server 對象提供對服務器上的方法和屬性的訪問
其中大多數方法和屬性是作為實用程序的功能服務的
語法 Server
property|method
屬性
ScriptTimeout:
ScriptTimeout 屬性指定腳本在結束前最大可運行多長時間
當處理服務器組件時
超時限制將不再生效
語法 Server
ScriptTimeout = NumSeconds
參數 NumSeconds
指定腳本在被服務器結束前最大可運行的秒數
默認值為
秒
注釋
通過使用元數據庫中的AspScriptTimeout屬性可以為 Web 服務或 Web 服務器設置缺省的ScriptTimeout值
ScriptTimeout屬性不能設置為小於在元數據庫中指定的值
例如
如果NumSeconds設置為
而元數據庫設置包含了默認值
秒
則腳本在
秒後超時
但如果NumSeconds設置為
則腳本在
秒後超時
關於使用元數據庫的詳細信息
參閱 關於元數據庫
示例 以下示例中
如果服務器處理腳本超過
秒
將使之超時
<% Server
ScriptTimeout =
%>以下示例獲取 ScriptTimeout 屬性當前值
並將其存儲在變量 TimeOut 中
<% TimeOut = Server
ScriptTimeout %>
方法
CreateObject
CreateObject 方法創建服務器組件的實例
如果該組件執行了 OnStartPage 和 OnEndPage 方法
則此時就會調用 OnStartPage 方法
有關服務器組件的詳細信息
請參閱 可安裝的 ASP 組件
語法 Server
CreateObject( progID )
參數 progID 指定要創建的對象的類型
progID 的格式為 [Vendor
] component[
Version]
注釋 默認情況下
由 Server
CreateObject 方法創建的對象具有頁作用域
這就是說
再當前 ASP 頁處理完成之後
服務器將自動破壞這些對象
要創建有會話或應用程序作用域的對象
可以使用 <OBJECT> 標記並設置 SESSION 或 APPLICATION 的 SCOPE 屬性
也可以在對話及應用程序變量中存儲該對象
例如
在如下所示的腳本中
當 Session 對象被破壞
即當對話超時時或 Abandon 方法被調用時
存儲在會話變量中的對象也將被破壞
<% Set Session(
ad
) = Server
CreateObject(
MSWC
AdRotator
)%>可以通過將變量設置為 Nothing 或新的值來破壞對象
如下所示
第一個例子釋放 ad 對象
第二個例子用字串代替 ad
<% Session (
ad
) = Nothing %>
<% Session (
ad
) =
Other Valum
%>不能創建與內建對象同名的對象實例
例如
下列腳本將返回錯誤
<% Set Response = Server
CreateObject(
Response
) %>
示例
<% Set MyAd = Server
CreateObject(
MSWC
AdRotator
) %> 上面的例子創建一個名為 MyAd 的 MSWC
AdRotator 服務器組件
MSWC
AdRotator 組件可用於在 Web 頁上的自動輪換廣告
關於服務器組件的詳細信息
請參閱 Creating Components for ASP
HTMLEncode
HTMLEncode方法對指定的字符串應用 HTML 編碼
語法 Server
HTMLEncode( string )
參數 string 指定要編碼的字符串
示例腳本 <%= Server
HTMLEncode(
The paragraph tag: <P>
) %>
輸出 The paragraph tag: <P>
注意 以上輸出將被 Web 浏覽器顯示為The paragraph tag: <P>如果查看一下源文件或以文本方式打開一個 Web 頁
您就可以看到已編碼的 HTML
MapPath
MapPath 方法將指定的相對或虛擬路徑映射到服務器上相應的物理目錄上
語法
Server
MapPath( Path )
參數
Path 指定要映射物理目錄的相對或虛擬路徑
若 Path 以一個正斜槓 (/) 或反斜槓 (\) 開始
則 MapPath 方法返回路徑時將 Path 視為完整的虛擬路徑
若 Path 不是以斜槓開始
則 MapPath 方法返回同
asp 文件中已有的路徑相對的路徑
注釋
MapPath 方法不支持相對路徑語法 (
) 或 (
)
例如
下列相對路徑
/MyDir/MyFile
txt 返回一個錯誤
MapPath 方法不檢查返回的路徑是否正確或在服務器上是否存在
因為 MapPath 方法只映射路徑而不管指定的目錄是否存在
所以
您可以先用 MapPath 方法映射物理目錄結構的路徑
然後將其傳遞給在服務器上創建指定目錄或文件的組件
示例
對於下列示例
文件data
txt和包含下列腳本的test
asp文件都位於目錄C:\Inetpub\Wwwroot\Script下
C:\Inetpub\Wwwroot目錄被設置為服務器的宿主目錄
下列示例使用服務器變量 PATH_INFO 映射當前文件的物理路徑
腳本
<%= server
mappath(Request
ServerVariables(
PATH_INFO
))%><BR>
輸出
c:\inetpub\wwwroot\script\test
asp<BR>
由於下列示例中的路徑參數不是以斜槓字符開始的
所以它們被相對映射到當前目錄
此處是 C:\Inetpub\Wwwroot\Script
腳本
<%= server
mappath(
data
txt
)%><BR>
<%= server
mappath(
script/data
txt
)%><BR>
輸出
c:\inetpub\wwwroot\script\data
txt<BR>
c:\inetpub\wwwroot\script\script\data
txt<BR>
接下來的兩個示例使用斜槓字符指定返回的路徑應被視為在服務器的完整虛擬路徑
腳本
<%= server
mappath(
/script/data
txt
)%><BR>
<%= server
mappath(
\script
)%><BR>
輸出
c:\inetpub\script\data
txt<BR>
From:http://tw.wingwit.com/Article/program/net/201311/13215.html