詳細介紹ASP的六大對象(上)
我們都知道,ASP中的六大內(nèi)置對象,分別是application,createobject,request,response,session,server。下面詳細介紹這六大對象。
一、Application對象
Application對象是個應(yīng)用程序級的對象,用來在所有用戶間共享信息,并可以在Web應(yīng)用程序運行期間持久地保持數(shù)據(jù)。
1、Application的屬性:
方法如下:
Application對象沒有內(nèi)置的屬性,但是我們可以自行創(chuàng)建其屬性。
<% Application("屬性名")=值 %>
其實大部分Application變量都 存放在Contents集合中,當(dāng)你創(chuàng)建一個新的Application變量時,其實就是在Contents集合中添加了一項。下面兩個腳本是等效的:
<% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application變量存在集合里,所以如果想要全部顯示,其方法我們已經(jīng)多次使用,例如For Each循環(huán)。
以下為引用的內(nèi)容:
- <%
- For Each item IN Application.Contents
- Response.write("<br>"&item&Application.Contents(item))
- next
- %>
2、Application的方法:
Application的方法只有兩個方法:一個是Lock,另一個是Unlock。其中Lock方法用于保證同一時刻只能一個用戶對Application操作。Unlock則用于取消Lock方法的限制。如:
以下為引用的內(nèi)容:
- <%
- Application.Lock
- Application("visitor_num")=Application("visitor_num")+1
- Application.Unlock
- %>
3、Application的事件:
- Application_OnStart():當(dāng)事件應(yīng)用程序啟動時觸發(fā)。
- Application_OnEnd():此事件應(yīng)用程序結(jié)束時觸發(fā)。
這兩個事件過程都是必須定義在Global.asp文件中,一般把連接數(shù)據(jù)的函數(shù)定義在這兩個事件,然后放在Global.asp中。例如:
以下為引用的內(nèi)容:
- Sub Application_OnStart
- Application("tt18_ConnectionString") = "driver={SQL
- Server};server=jeff;uid=sa;pwd=;database=test"
- End Sub
一個數(shù)組能夠被定義成Application對象,不過這個數(shù)組只能作為一個對象保存,而不能用Application(0)取出其值。可以定義一個臨時數(shù)組實現(xiàn)這種功能。如:
以下為引用的內(nèi)容:
- <%
- dim Array()
- Array=Application("array")
- for i = 0 to ubound(array)
- Response.write Array(i)
- next i
- %>
同樣要修改這個Application對象也可以定義一個臨時數(shù)組,把Application對象賦給數(shù)組,然后修改這個數(shù)組的元素,最后把數(shù)組賦回
4、Application對象
如:以下為引用的內(nèi)容:
- <%
- dim Array()
- Array=Application("array")
- Array(0)="jeff"
- Array(1)="zhu"
- Application.lock
- Application("array")=Array
- Application.unlock
- %>
二、ObjectContext對象
該對象用于控制Active Server Pages的事務(wù)處理。事務(wù)處理由Microsoft Transaction Server (MTS)管理。
1、事件
- ObjectContext.OnTransactionAbort 由放棄的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生。
- ObjectContext.OnTransactionCommit 由成功的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生。
2、方法
- ObjectContext.SetAbort 顯示的放棄一次事務(wù)處理。
- ObjectContext.SetComplete 覆蓋前面任何調(diào)用ObjectContext.SetAbort方法的調(diào)用。
#p#
三、Request對象
Request對象用于接受所有從瀏覽器發(fā)往你的服務(wù)器的請求內(nèi)的所有信息。
1、集合
- Request.ClientCertificate(key[SubField]) 所有客戶證書的信息的集合。對于Key,該集合具有如下的關(guān)鍵字:
- Subject 證書的主題。包含所有關(guān)于證書收據(jù)的信息。能和所有的子域后綴一起使用。
- Issuer 證書的發(fā)行人。包含所有關(guān)于證書驗證的信息。除了CN外,能和所有的子域后綴一起使用。
- VadidFrom 證書發(fā)行的日期。使用VBscript格式。
- ValidUntil 證書不在有效的時間。
- SerialNumber 包含該證書的序列號。
- Certificate 包含整個證書內(nèi)容的二進制流,使用ASN.1格式。
對于SubField,Subject和Issuer關(guān)鍵字可以具有如下的子域后綴:(比如:SubjectOU或IssuerL)
- C 起源國家。
- O 公司或組織名稱。
- OU 組織單元。
- CN 用戶的常規(guī)名稱。
- L 局部。
- S 州(或?。?/li>
- T 個人或公司的標(biāo)題。
- GN 給定名稱。
- I 初始。
當(dāng)文件cervbs.inc(VBscript使用)或cerJavas.inc(Jscript使用)通過使用#INCLUDE導(dǎo)向包含在你的Active Server Page里時,下面兩個標(biāo)志可以使用:
- ceCertPresent 指明客戶證書是否存在,其值為TRUE或FALSE。
- ceUnrecongnizedIssure 指明在該鏈表中的最后的證書的發(fā)行者是否未知,其值為TRUE或FALSE。
- Request.Cookies(Cookie[(key).Attribute]) Cookie的集合。允許獲得瀏覽器的Cookie。Cookie指明返回那一個Cookie。Key用于從Cookie字典中返回具有某一關(guān)鍵字的Cookie值。對于Attribute,你能使用屬性HasKeys來確定某一Cookie是否具有子關(guān)鍵字。HasKeys的值為TRUE或FALSE。
- Request.Form(Parameter)[(Index).Count] 填寫HTML的表單中所有的數(shù)據(jù)的集合。Parameter是在HTML表單中某一元素的名稱。當(dāng)某一參數(shù)具有不止一個值(比如,當(dāng)在<SELECT>中使用MULTIPLE屬性時)時,使用Index。當(dāng)某一參數(shù)具有多值時,Count指明多值個數(shù)。
- Request.QueryString(Varible)[(Index).Count]查詢字符串的所有值的集合。Varible是在查詢字符串某一變量的名稱。當(dāng)某一變量具有多于一個值時,使用Index。當(dāng)某一參數(shù)具有多值時,Count指明值的個數(shù)。
- Request.ServerVaribles(Server Environment Variable)環(huán)境變量的集合。允許讀取HTTP頭。你可以通過使用HTTP_前綴來讀取任何頭信息。比如,HTTP_USER_AGENT接受客戶代理HTTP頭(瀏覽器類型)。
除此外,你可以使用下表所示的變量獲得任何環(huán)境信息。
ALL_HTTP客戶端發(fā)送的所有HTTP標(biāo)頭,他的結(jié)果都有前綴HTTP_。
ALL_RAW客戶端發(fā)送的所有HTTP標(biāo)頭,其結(jié)果和客戶端發(fā)送時一樣,沒有前綴HTTP_
APPL_MD_PATH應(yīng)用程序的元數(shù)據(jù)庫路徑。
APPL_PHYSICAL_PATH與應(yīng)用程序元數(shù)據(jù)庫路徑相應(yīng)的物理路徑。
AUTH_PASSWORD當(dāng)使用基本驗證模式時,客戶在密碼對話框中輸入的密碼。
AUTH_TYPE這是用戶訪問受保護的腳本時,服務(wù)器用于檢驗用戶的驗證方法。
AUTH_USER代驗證的用戶名。
CERT_COOKIE唯一的客戶證書ID號。
CERT_FLAG客戶證書標(biāo)志,如有客戶端證書,則bit0為0。如果客戶端證書驗證無效,bit1被設(shè)置為1。
CERT_ISSUER用戶證書中的發(fā)行者字段。
CERT_KEYSIZE安全套接字層連接關(guān)鍵字的位數(shù),如128。
CERT_SECRETKEYSIZE服務(wù)器驗證私人關(guān)鍵字的位數(shù)。如1024。
CERT_SERIALNUMBER客戶證書的序列號字段。
CERT_SERVER_ISSUER服務(wù)器證書的發(fā)行者字段
CERT_SERVER_SUBJECT服務(wù)器證書的主題字段。
CERT_SUBJECT客戶端證書的主題字段。
CONTENT_LENGTH客戶端發(fā)出內(nèi)容的長度。
CONTENT_TYPE客戶發(fā)送的form內(nèi)容或HTTP PUT的數(shù)據(jù)類型。
GATEWAY_INTERFACE服務(wù)器使用的網(wǎng)關(guān)界面。
HTTPS如果請求穿過安全通道(SSL),則返回ON。如果請求來自非安全通道,則返回OFF。
HTTPS_KEYSIZE安全套接字層連接關(guān)鍵字的位數(shù),如128。
HTTPS_SECRETKEYSIZE服務(wù)器驗證私人關(guān)鍵字的位數(shù)。如1024。
HTTPS_SERVER_ISSUER服務(wù)器證書的發(fā)行者字段。
HTTPS_SERVER_SUBJECT服務(wù)器證書的主題字段。
INSTANCE_IDIIS實例的ID號。
INSTANCE_META_PATH響應(yīng)請求的IIS實例的元數(shù)據(jù)庫路徑。
LOCAL_ADDR返回接受請求的服務(wù)器地址。
LOGON_USER用戶登錄Windows NT的帳號
PATH_INFO客戶端提供的路徑信息。
PATH_TRANSLATED通過由虛擬至物理的映射后得到的路徑。
QUERY_STRING查詢字符串內(nèi)容。
REMOTE_ADDR發(fā)出請求的遠程主機的IP地址。
REMOTE_HOST發(fā)出請求的遠程主機名稱。
REQUEST_METHOD提出請求的方法。比如GET、HEAD、POST等等。
script_NAME執(zhí)行腳本的名稱。
SERVER_NAME服務(wù)器的主機名、DNS地址或IP地址。
SERVER_PORT接受請求的服務(wù)器端口號。
SERVER_PORT_SECURE如果接受請求的服務(wù)器端口為安全端口時,則為1,否則為0。
SERVER_PROTOCOL服務(wù)器使用的協(xié)議的名稱和版本。
SERVER_SOFTWARE應(yīng)答請求并運行網(wǎng)關(guān)的服務(wù)器軟件的名稱和版本。
URL提供URL的基本部分。
2、方法
Request.BinaryRead(Count)
接收一個HTML表單的未經(jīng)過處理的內(nèi)容。當(dāng)調(diào)用此方法時,Count指明要接收多少字節(jié)。在調(diào)用此方法后,Count指明實際上接收到多少個字節(jié)。
3、屬性
Request.TotalBytes
查詢體的長度,以字節(jié)為單位
希望本文能給你帶來幫助。請看下一篇>>
【編輯推薦】