Server對象提供對服務器上訪問的方法和屬性.大多數方法和屬性是作為實用程序的功能提供的。
語法:
Server.property|method
屬性(property)
Server對象只有一個屬性:ScriptTimeout 程序能夠運行的最大時間
方法(Methods)
CreateObject 建立一個對象實例.
Execute 執行一個asp文件
GetLastError 返回一個錯誤代碼
HTMLEncode 對指定的HTML代碼進行轉換.
MapPath 將一個相對路徑轉化為一個絕對路徑.
Transfer 將當前的所有狀態信息發送給另一個asp文件
URLEncode 以URL形式轉化指定的代碼,包括空格
Server對象的方法詳細說明
CreateObject
語法
Server.CreateObject( progID )
參數
progID
指定要創建的組件名稱,格式如下: [Vendor.]Component[.Version].
要點:
一般來說,用由Server.CreateObject方法創建的對象擁有頁面的范圍.這就說,當這頁的asp程序執行完後,這種對象會自動地消失.
為了創建一個擁有Session或Application范圍的對象,你可以在Global.asa文件中使用
Execute
Execute 方法呼叫一個ASP文件並且執行它就像這個呼叫的ASP文件存在這個ASP文件中一樣。這很像許多語言中的類的調用。
語法
Server.Execute( Path )
參數
Path
指定執行的那個asp文件的路徑。如是它是一個絕對路徑,那麼它必須是一個在這個ASP應用程序相同的地方(目錄)。
講解
Server.Execute 方法提供了一種將一個復雜ASP應用程序分化為小塊單位來執行的方法。通過這種方法,你能夠建一個ASP圖書館,你能夠隨便在你需要時調用你圖書館中的ASP文件。這個就有點像SSI了!嘿嘿!
當IIS根據指定的ASP文件路徑執行完這個ASP文件之後,就會自動返回以前的ASP文件。這個剛剛執行完的ASP文件有可能改變了HTTP head.但是和其它的ASP文件一樣,當程序試圖改變http head時,就會報錯!
這個path參數可以包括一個詢問信息。
如果在被呼叫和呼叫的ASP文件中都含有相同的子函數,那麼這些子函數只在本ASP文件中起作用。舉個例子,如果在下面的ASP1和ASP2兩個文件中都含有放棄程序的子函數。首先ASP1呼叫ASP2,那麼ASP2中的的OnTransactionAbort開始執行,當ASP2執行完畢,ASP1中的OnTransactionAbort才開始執行。
ASP1:
< %@ Transaction=Required%>
< %
Server.Execute ("Page22.asp")
Sub OnTransactionAbort
Sub OnTransactionCommit
%>
Asp2.asp:
< %@
Transaction=Required
Sub OnTransactionAbort
Sub OnTransactionCommit
%>
Example
ASP1
< % Response.Write("I am going to execute ASP2 ")
Server.Execute("/myasps/asp2.asp")
%>
ASP2
< % Response.Write("Here I am")%>
GetLastError
GetLastError 方法返回一個ASPError Object 來描述一個錯誤信息.這個方法只適用於在asp文件發送任何內容給用戶機之前.
語法
Server.GetLastError ()
要點
如果一個500;100 用戶錯誤已經被定義在一個asp應用程序中,它是指的一個以.asp為後綴的文件。這種情況下,在這個程序運行時當一個錯誤發生時,服務器就會自動的以 Server.Transfer這種方式傳送到這個正在執行的ASP頁面。ASP應用程序就會將有效的處理這個錯誤。另外,這個ASPError Object一定要有效,這樣你就能夠看到服務器提供給你的錯誤信息來改這個文件了!
一般的Web Site 都是根據文件/iishelp/common/500-100.asp來構造的。你能夠用它來執行一個asp錯誤,當然你能夠自己定義了!。如果你想改變為另外一個asp文件的來執行這些用戶錯誤。那麼你可以用IIS中的snap-in.
注意:當IIS發現了一個asp文件或者global.asa文件中的一個錯誤,那麼一個500;100用戶錯誤產生。以下的程序將不能執行!
Example
下面的三個例子證明不同的錯誤會產生的用戶錯誤。三個錯誤是:
編譯錯誤
運行錯誤
邏輯錯誤
第一個例子證明了一個編譯錯誤,就是當IIS試圖包含一個文件時產生的。這個錯誤會產生是因為在這個包含文件中沒有定義所需的參數。第二個例子顯示的是一個運行錯誤,這個程序中斷的原因是程序中沒有“next".第三個例子顯示的是一個邏輯錯誤,因為這個程序試圖除以一個0. 不行啦!
Example 1
< %
response.write "hello"
%>
Example 2
< %
dim I
for i=1 to 1
nxt
%>
Example 3
< %
dim i,j
dim sum
sum=0
j=0
for i=1 to 10
sum=sum+1
next
sum=sum/j
%>
HTMLEncode
HTMLEncode方法對指定的字符串進行HTML編碼.
語法
Server.HTMLEncode( string )