Application對象是個應用程序級的對象,用來在所有用戶間共享信息,并可以在Web應用程序運行期間持久地保持數據。
Application的屬性:
方法如下:
Application對象沒有內置的屬性,但是我們可以自行創建其屬性。
<% Application("屬性名")=值 %>
其實大部分Application變量都 存放在Contents集合中,當你創建一個新的Application變量時,其實就是在Contents集合中添加了一項。下面兩個腳本是等效的:
<% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application變量存在集合里,所以如果想要全部顯示,其方法我們已經多次使用,例如For Each循環。
<%
For Each item IN Application.Contents
Response.write("<br>"&item&Application.Contents(item))
next
%>
Application的方法:
Application的方法只有兩個方法:一個是Lock,另一個是Unlock。其中Lock方法用于保證同一時刻只能一個用戶對Application操作。Unlock則用于取消Lock方法的限制。如:
<%
Application.Lock
Application("visitor_num")=Application("visitor_num")+1
Application.Unlock
%>
Application的事件:
1、Application_OnStart()
當事件應用程序啟動時觸發。
2、Application_OnEnd()
此事件應用程序結束時觸發。
這兩個事件過程都是必須定義在Global.asp文件中,一般把連接數據的函數定義在這兩個事件,然后放在Global.asp中。例如:
Sub Application_OnStart
Application("tt18_ConnectionString") = "driver={SQL
Server};server=jeff;uid=sa;pwd=;database=test"
End Sub
一個數組能夠被定義成Application對象,不過這個數組只能作為一個對象保存,而不能用Application(0)取出其值。可以定義一個臨時數組實現這種功能。如:
<%
dim Array()
Array=Application("array")
for i = 0 to ubound(array)
Response.write Array(i)
next i
%>
同樣要修改這個Application對象也可以定義一個臨時數組,把Application對象賦給數組,然后修改這個數組的元素,最后把數組賦回Application對象。如:
<%
dim Array()
Array=Application("array")
Array(0)="jeff"
Array(1)="zhu"
Application.lock
Application("array")=Array
Application.unlock
%>
ObjectContext對象
該對象用于控制Active Server Pages的事務處理。事務處理由Microsoft Transaction Server (MTS)管理。
事件
ObjectContext.OnTransactionAbort
由放棄的事務處理事件激發,在腳本完成處理后發生。
ObjectContext.OnTransactionCommit
由成功的事務處理事件激發,在腳本完成處理后發生。
方法
ObjectContext.SetAbort
顯式的放棄一次事務處理。
ObjectContext.SetComplete
覆蓋前面任何調用ObjectContext.SetAbort方法的調用。
Request對象
Request對象用于接受所有從瀏覽器發往你的服務器的請求內的所有信息。
集合
Request.ClientCertificate(key[SubField])
所有客戶證書的信息的集合。對于Key,該集合具有如下的關鍵字:
Subject
證書的主題。包含所有關于證書收據的信息。能和所有的子域后綴一起使用。
Issuer
證書的發行人。包含所有關于證書驗證的信息。除了CN外,能和所有的子域后綴一起使用。
VadidFrom
證書發行的日期。使用VBScript格式。
ValidUntil
該證書不在有效的時間。
SerialNumber
包含該證書的序列號。
Certificate
包含整個證書內容的二進制流,使用ASN.1格式。
對于SubField,Subject和Issuer關鍵字可以具有如下的子域后綴:(比如:SubjectOU或IssuerL)
C
起源國家。
O
公司或組織名稱。
OU
組織單元。
CN
用戶的常規名稱。
L
局部。
S
州(或省)。
T
個人或公司的標題。
GN
給定名稱。
I
初始。
當文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通過使用#INCLUDE導向包含在你的Active Server Page里時,下面兩個標志可以使用:
ceCertPResent
指明客戶證書是否存在,其值為TRUE或FALSE。
ceUnrecongnizedIssure
指明在該鏈表中的最后的證書的發行者是否未知,其值為TRUE或FALSE。
Request.Cookies(Cookie[(key).Attribute])
Cookie的集合。允許獲得瀏覽器的Cookie。Cookie指明返回那一個Cookie。Key用于從Cookie字典中返回具有某一關鍵字的Cookie值。對于Attribute,你能使用屬性HasKeys來確定某一Cookie是否具有子關鍵字。HasKeys的值為TRUE或FALSE。
Request.Form(Parameter)[(Index).Count]
填寫在HTML的表單中所有的數據的集合。Parameter是在HTML表單中某一元素的名稱。當某一參數具有不止一個值(比如,當在<SELECT>中使用MULTIPLE屬性時)時,使用Index。當某一參數具有多值時,Count指明多值個數。
Request.QueryString(Varible)[(Index).Count]
查詢字符串的所有值的集合。Varible是在查詢字符串某一變量的名稱。當某一變量具有多于一個值時,使用Index。當某一參數具有多值時,Count指明值的個數。
Request.ServerVaribles(Server Environment Variable)
環境變量的集合。允許讀取HTTP頭。你可以通過使用HTTP_前綴來讀取任何頭信息。比如,HTTP_USER_AGENT接受客戶代理HTTP頭(瀏覽器類型)。除此外,你可以使用下表所示的變量獲得任何環境信息。
ALL_HTTP
客戶端發送的所有HTTP標頭,他的結果都有前綴HTTP_。
ALL_RAW
客戶端發送的所有HTTP標頭,其結果和客戶端發送時一樣,沒有前綴HTTP_
APPL_MD_PATH
應用程序的元數據庫路徑。
APPL_PHYSICAL_PATH
與應用程序元數據庫路徑相應的物理路徑。
AUTH_PASSWord
當使用基本驗證模式時,客戶在密碼對話框中輸入的密碼。
AUTH_TYPE
這是用戶訪問受保護的腳本時,服務器用于檢驗用戶的驗證方法。
AUTH_USER
代驗證的用戶名。
CERT_COOKIE
唯一的客戶證書ID號。
CERT_FLAG
客戶證書標志,如有客戶端證書,則bit0為0。如果客戶端證書驗證無效,bit1被設置為1。
CERT_ISSUER
用戶證書中的發行者字段。
CERT_KEYSIZE
安全套接字層連接關鍵字的位數,如128。
CERT_SECRETKEYSIZE
服務器驗證私人關鍵字的位數。如1024。
CERT_SERIALNUMBER
客戶證書的序列號字段。
CERT_SERVER_ISSUER
服務器證書的發行者字段
CERT_SERVER_SUBJECT
服務器證書的主題字段。
CERT_SUBJECT
客戶端證書的主題字段。
CONTENT_LENGTH
客戶端發出內容的長度。
CONTENT_TYPE
客戶發送的form內容或HTTP PUT的數據類型。
GATEWAY_INTERFACE
服務器使用的網關界面。
HTTPS
如果請求穿過安全通道(SSL),則返回ON。如果請求來自非安全通道,則返回OFF。
HTTPS_KEYSIZE
安全套接字層連接關鍵字的位數,如128。
HTTPS_SECRETKEYSIZE
服務器驗證私人關鍵字的位數。如1024。
HTTPS_SERVER_ISSUER
服務器證書的發行者字段。
HTTPS_SERVER_SUBJECT
服務器證書的主題字段。
INSTANCE_ID
IIS實例的ID號。
INSTANCE_META_PATH
響應請求的IIS實例的元數據庫路徑。
LOCAL_ADDR
返回接受請求的服務器地址。
LOGON_USER
用戶登錄Windows NT的帳號
PATH_INFO
客戶端提供的路徑信息。
PATH_TRANSLATED
通過由虛擬至物理的映射后得到的路徑。
QUERY_STRING
查詢字符串內容。
REMOTE_ADDR
發出請求的遠程主機的IP地址。
REMOTE_HOST
發出請求的遠程主機名稱。
REQUEST_METHOD
提出請求的方法。比如GET、HEAD、POST等等。
SCRIPT_NAME
執行腳本的名稱。
SERVER_NAME
服務器的主機名、DNS地址或IP地址。
SERVER_PORT
接受請求的服務器端口號。
SERVER_PORT_SECURE
如果接受請求的服務器端口為安全端口時,則為1,否則為0。
SERVER_PROTOCOL
服務器使用的協議的名稱和版本。
SERVER_SOFTWARE
應答請求并運行網關的服務器軟件的名稱和版本。
URL
提供URL的基本部分。
方法
Request.BinaryRead(Count)
接收一個HTML表單的未經過處理的內容。當調用此方法時,Count指明要接收多少字節。在調用此方法后,Count指明實際上接收到多少個字節。
屬性
Request.TotalBytes
查詢體的長度,以字節為單位
Response對象
Response對象用于向客戶端瀏覽器發送數據,用戶可以使用該對象將服務器的數據以HTML的格式發送到用戶端的瀏覽器,它與Request組成了一對接收、發送數據的對象,這也是實現動態的基礎。下面介紹它常用的屬性和方法。
1、Buffer屬性
該屬性用于指定頁面輸出時是否要用到緩沖區,默認值為False。當它為True時,直到整個Active Server Page執行結束后才會將結果輸出到瀏覽器上。如:
<%Response.Buffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
for i=1 to 500
response.write(i & "<br>")
next
%>
</body>
</html>
這頁執行時,整個主頁的所有內容會同時顯示在瀏覽器上,這個主頁會存在緩存區中直到腳本執行結束。
2、Expires屬性
該屬性用于設置瀏覽器緩存頁面的時間長度(單位為分),必須在服務器端刷新。通過如下設置:
<%Response.Expires=0%>
通過在ASP文件中加入這一行代碼,要求每次請求是刷新頁面,因為Response一收到頁面就會過期。
3、Write方法
該方法把數據發送到客戶端瀏覽器,如:
<%Response.write "Hello,world!"%>
4、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="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時才能使用。
5、End方法
該方法用于告知Active Server當遇到該方法時停止處理ASP文件。如果Response對象的Buffer屬性設置為True,這時End方法即把緩存中的內容發送到客戶并清除沖區。所以要取消所有向客戶的輸出民,可以先清除緩沖區,然后利用End方法。如:
<%
Response.buffer=true
On error resume next
Err.clear
if Err.number<>0 then
Response.Clear
Response.End
end if
%>
Server 對象:
Server 對象提供對服務器上的方法和屬性的訪問。其中大多數方法和屬性是作為實用程序的功能服務的。
語法
Server.property|method
屬性
ScriptTimeout:
ScriptTimeout 屬性指定腳本在結束前最大可運行多長時間。 當處理服務器組件時,超時限制將不再生效。
語法 Server.ScriptTimeout = NumSeconds
參數 NumSeconds
指定腳本在被服務器結束前最大可運行的秒數。默認值為 90 秒。
注釋
通過使用元數據庫中的AspScriptTimeout屬性可以為 Web 服務或 Web 服務器設置缺省的ScriptTimeout值。ScriptTimeout屬性不能設置為小于在元數據庫中指定的值。例如,如果NumSeconds設置為10,而元數據庫設置包含了默認值90秒,則腳本在90秒后超時。但如果NumSeconds設置為100,則腳本在100秒后超時。
關于使用元數據庫的詳細信息,參閱 關于元數據庫。
示例 以下示例中,如果服務器處理腳本超過 100 秒,將使之超時。
<% Server.ScriptTimeout = 100 %>
以下示例獲取 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>
c:/inetpub/script<BR>
下列示例演示如何使用正斜杠 (/) 或反斜杠 (/) 返回宿主目錄的物理路徑。腳本
<%= server.mappath("/")%><BR>
<%= server.mappath("/")%><BR>
輸出
c:/inetpub/wwwroot<BR>
c:/inetpub/wwwroot<BR>
URLEncode
URLEncode 方法將 URL 編碼規則,包括轉義字符,應用到指定的字符串。
新聞熱點
疑難解答