/*-------------------ASP文檔參考集-----------------------*/
*-->作者:草履蟲
*-->時間:2007-4.28---2007-4.30(原來是自己編寫的手冊,現在發在這里)
*-->聯系:caolvchong@gmail.com
*-->文檔功能:
1.復習了ASP,加深了對ASP結構的理解和ASP的體會
2.可以用來做ASP參考,自己寫的,參考起來更方便
這是第二部分:ASP七大對象
/*---------------------------ASP七大對象----------------------------*/
*-->Application對象:
功能:在給定的應用程序的所有用戶之間共享信息,并在服務器運行期間持久的保存數
據.而且,Application對象還有控制訪問應用層數據的方法和可用于在應用程序啟
動和停止時觸發過程的事件(OnStart事件和OnEnd事件)
屬性:沒有內置的屬性
集合:即用戶自定義的屬性
Application對象的集合及說明:
Contents:沒有使用
它們的值)的一個集合.包括Variant數組和Variant類型對象實例的引用
StaticObjects:使用
(及它們的值)的一個集合
對應的例子:
設置application屬性值:
Application("MyVar")="Hello"
SetApplication("MyObj")=Server.CreateObject("MyComponent")
方法:
Contents.Remove():移去某個application集合
Contents.Removeall():移去所有的Application集合
Lock():阻止其他客戶修改存儲在Application對象中的變量,以確保在同一時刻僅
有一個客戶可修改和存取Application變量.如果用戶沒有明確調用Unlock
方法,則服務器將在.asp文件結束或超時后即解除對Application對象的鎖
定
Unlock():使其他客戶端可以在使用Lock方法鎖住Application對象后,修改存儲在
該對象中的變量.如果未顯式調用該方法,Web服務器將在.asp文件結束或超時
后解鎖Application對象
一個綜合點的例子:
在1.asp中:
'設置3個application屬性值
application("chong1")="第1個application集合項"
application("chong2")="第2個application集合項"
application("chong3")="第3個application集合項"
'設置的屬性值都保留在application.contents中,基數從0開始,因此可以用
'for循環讀出來
'這里總結下contents集合的屬性:
'count屬性:返回集合中所有的項數,返回值是個整數
'item屬性:用于設置或返回集合中一個特定成員的值,item屬性是
contents
'集合的默認屬性,因此.item(x)相當于.(x)
'key屬性:key(x)返回對應的屬性名,如上面
application.contents.key(1)
'將返回chong1
Fori=1toApplication.Contents.Count
Response.Write(Application.Contents.item(i))
Next
在2.asp中:
'2.asp和1.asp共享了application對象內容,因此可以對該集合元素進行修
改或刪除等
application("chong1")="我被修改了"'修改application屬性值
application.Contents.Remove("chong2")'刪除application屬性值
foreachjinapplication.Contents'foreach形式訪問application
response.Write(Application.Contents.item(j))
next
事件:至于兩個事件onstart()和onend()等總結Global.asa文件時介紹
經驗:通常地,當要修改某個application值時,應當先用Lock()鎖定它,然后再修改,修
改完后再Unlock(),防止多個用戶并發訪問該對象
常用:設置,修改和刪除application集合,結合lock和unlock方法
*-->Session對象:
功能:Session對象存儲特定的用戶會話所需的信息.當用戶在應用程序的頁之間跳轉
時,存儲在Session對象中的變量不會清除,而用戶在應用程序中訪問頁面時,這些
變量始終存在.當用戶請求來自應用程序的Web頁時,如果該用戶還沒有會話,則
Web服務器將自動創建一個Session對象.當會話過期或被放棄后,服務器將終止該
會話(和application差別是session不是共享的,各個用戶有各自的session,由此
可以用來驗證用戶的身份)
集合:和application一樣地,session具有contents和StaticObject兩個集合
屬性:
CodePage:讀/寫.整型.定義用于在瀏覽器中顯示頁內容的代碼頁(CodePage).代碼
頁是字符集的數字值,不同的語言和場所可能使用不同的代碼頁.例如,650001
是UTF-8,936為GB2312
LCID:讀/寫.整型.定義發送給瀏覽器的頁面地區標識(LCID).LCID是唯一地標識地
區的一個國際標準縮寫,例如,2057定義當前地區的貨幣符號是'£'.LCID也可
用于FormatCurrency等語句中,只要其中有一個可選的LCID參數.LCID也可在
ASP處理指令<%...%>中設置,并優先于會話的LCID屬性中的設置.
SessionID:只讀.長整型.返回這個會話的會話標識符.SessionID屬性返回用戶的
會話標識.在創建會話時,服務器會為每一個會話生成一個單獨的標識.會話標
識以長整形數據類型返回.在很多情況下SessionID可以用于WEB頁面注冊
統計
Timeout:讀/寫.整型.為這個會話定義以分鐘為單位的超時周期.如果用戶在超時周
期內沒有進行刷新或請求一個網頁,該會話結束.在各網頁中根據需要可以修
改.缺省值是20min,在使用率高的站點上該時間應更短
方法:
Abandon():Abandon方法刪除所有存儲在Session對象中的對象并釋放這些對象的
源.如果您未明確地調用Abandon方法,一旦會話超時,服務器將刪除這些對象.
當服務器處理完當前頁時,下面示例將釋放會話狀態
另外,session和application一樣,具有contents.remove()和
contents.removeall()方法
事件:至于兩個事件onstart()和onend()等總結Global.asa文件時介紹
常用:設置,修改,刪除session,另外timeout也是常用的,記住一點,session依賴cookies,當瀏覽器關閉或者不
支持cookie時將不能訪問到session
*-->request對象:
功能:Request對象在HTTP請求期間,檢索客戶端瀏覽器傳遞給服務器的值
集合:
ClientCertificate:當客戶端訪問一個頁面或其他資源時,用來向服務器表明身份
的客戶證書的所有字段或條目的數值集合,每個成員均是只
讀.ClientCertificate集合從Web瀏覽器發布請求中獲取驗證字段(由X.509
標準指定).如果Web瀏覽器使用SSL3.0/PCT1協議(也就是說,它使用以
https://開頭的URL,而不是http://)連接服務器及服務器請求驗證,則瀏覽器
將發送驗證字段.如果沒有發送驗證,ClientCertificate集合將返回EMPTY.必
須先將Web服務器配置為要求客戶端驗證,然后才能使用ClientCertificate
集合.
Cookies:根據用戶的請求,用戶系統發出的所有cookie的值的集合,這些Cookie僅
對相應的域有效,每個成員均為只讀,cookies也具有count,item,key三個屬
性,用法可以類比上面提到的application中提到的.另外,cookies還有個屬性
haskeys,指明cookie是多值還是單值的,多值返回true,單值返回false
Form:的屬性值為POST時,所有作為請求提交的