深入研究Application與Session對象(1)
發(fā)表時間:2023-08-05 來源:明輝站整理相關軟件相關文章人氣:
[摘要]用ASP編寫虛擬社區(qū)、網(wǎng)上購物等程序時,Application和Session對象具有舉足輕重的作用,能夠靈活合理地運用這兩個對象是提高程序質量的關鍵。下面讓筆者根據(jù)自己在這方面的經(jīng)驗,向大家深入介...
用ASP編寫虛擬社區(qū)、網(wǎng)上購物等程序時,Application和Session對象具有舉足輕重的作用,能夠靈活合理地運用這兩個對象是提高程序質量的關鍵。下面讓筆者根據(jù)自己在這方面的經(jīng)驗,向大家深入介紹一下ASP的這兩個內建對象。
一、Application對象的成員概述
Application對象成員包括Application對象的集合、方法和事件。
、盇pplication對象的集合
Contents集合:沒有使用<OBJECT>元素定義的存儲于Applicaiton對象中的所有變量的集合
StaticObjects:使用<OBJECT>元素定義的存儲于Application對象中的所有變量 的集合
例:在default.asp中有如下賦值
application("a")="a"
application("b")=128
application("c")=false
則有contents集合
application.contents(1)="a" '也可寫為application.contents("a")="a"
application.contents(2)=128 '也可寫為application.contents("b")=128
application.contents(3)=false '也可寫為application.contents("c")=false
在此筆者推薦你在調用時使用類如application.contents("a")的方法,因為這樣更為直觀,如果用序號來表示的話則要考慮賦值的先后順序。
、睞pplication對象的方法
Contents.Remove("變量名"):從Application.Contents集合中刪除指定的變量
Contents.RemoveAll() :把Application.Contents集合中的所有變量刪除
Lock() :鎖定Application對象,使得只有當前的ASP頁對內容能進行訪問
Unlock() :解除對Application對象的鎖定
例:在default.asp中:
application("a")="a"
application("b")=128
application("c")=false
response.write application.contents(1)&"<br>"
response.write application.contents(2)&"<br>"
response.write application.contents(3)&"<br>"
response.write "After Remove b:"
application.contents.remove("b")
response.write application.contents(1)&"<br>"
response.write application.contents(2)&"<br>"
執(zhí)行結果:
a
128
False
After Remove b:
a
False
如果要刪除集合中所有變量用application.contents.removeall即可,至于Lock和Unlock方法在實際中經(jīng)常用到,讀者也比較熟悉,在此就不在累贅。
⒊Application對象事件
OnStart:第一個訪問服務器的用戶第一次訪問某一頁面時發(fā)生
OnEnd :當最后一個用戶的會話已經(jīng)結束并且該會話的OnEnd事件所有代碼已經(jīng)執(zhí)行完畢后發(fā)生,或最后一個用戶訪問服務器一段時間(一般為20分鐘)后仍然沒有人訪問該服務器產(chǎn)生。
想要定義application對象的OnStart和OnEnd事件里做什么需要將代碼寫在Global.asa這個文件里(下文有舉例),并且將該文件放在站點的根目錄下(一般是Inetpub\wwwroot\)