ASP六大對象介紹

 

Application對象

  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="http://www.tinyu.com/";
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時才能使用。

 

5、End方法
  該方法用於告知Active

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章