一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - ASP編程入門進階(九):內置對象Application

ASP編程入門進階(九):內置對象Application

2019-10-28 12:10asp教程網 ASP教程

在Web應用程序中,當一個用戶訪問該應用時,Session類型的變量可以供這個用戶在該Web應用的所有頁面中共享數據;如果另一個用戶也同時訪問該Web應用,他也擁有自己的Session變量,但兩個用戶之間無法通過Session變量共享信息,而

在Web應用程序中,當一個用戶訪問該應用時,Session類型的變量可以供這個用戶在該Web應用的所有頁面中共享數據;如果另一個用戶也同時訪問該Web應用,他也擁有自己的Session變量,但兩個用戶之間無法通過Session變量共享信息,而Application類型的變量則可以實現站點多個用戶之間在所有頁面中共享信息。可以理解Session是局部變量,而Application則為全局變量。

在同一虛擬目錄及其子目錄下的所有 .asp 文件構成了 ASP 應用程序。我們非但可以使用 Application 對象,在給定的應用程序的所有用戶之間共享信息,并在服務器運行期間持久的保存數據。而且,Application 對象還有控制訪問應用層數據的方法和可用于在應用程序啟動和停止時觸發過程的事件。

一、Application("name")=Value
正如Session("name")=value一樣,Application對象也沒有內置的屬性。當然用戶可以自定義屬性,該屬性也可稱為集合。

一旦分配了Application對象的屬性,它就會持久地存在,直到關閉WEB服務器服務使得 Application 停止。由于存儲在 Application 對象中的數值可以被應用程序的所有用戶讀取,所以 Application 對象的屬性特別適合在應用程序的用戶之間傳遞信息。


<%
Application("MyName") = "cnbruce"
%>



二、Application.Lock
Lock方法是禁止其他用戶修改Application對象的屬性,以確保在同一時刻僅有一個客戶可修改和存取 Application 變量。如果用戶沒有明確調用 Unlock 方法,則服務器將會在 .asp 文件結束或超時后即解除對 Application 對象的鎖定。最簡單的就是進行頁面記數的例子了。

1,num.asp


<%
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
你是本頁的第<%=Application("NumVisits")%>位訪問者



當然,若如果你需要記數的初始值那就該寫個判斷了。


<%
if Application("NumVisits")<9999 then
Application("NumVisits")=10000
end if
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
你是本頁的第<%=Application("NumVisits")%>位訪問者


上面的程序,你會發現每刷新一次,都會記數累加,如按IP值訪問來記數的話,則建立一個Session

2,vnum.asp


<%
if session("visitnum")="" then
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
session("visitnum")="visited"
end if
%>
你是本頁的第<%=Application("NumVisits")%>位訪問者



三、Application.Unlock
與Lock方法相反,Unlock方法是允許其他用戶修改 Application 對象的屬性。可以看出在上面的例子中,Unlock方法解除對象的鎖定,使得下一個客戶端能夠增加 NumVisits 的值。

當然需要注意的是:記數要確保服務器不被重啟,因為所以的訪問是數值是建立在頁面之上的,并未進行保存成文件或保存到數據庫這樣的處理。
一般當服務器重新啟動就會觸發Application的事件了。

四、Application_OnEnd
Application_OnEnd 事件在應用程序退出時于 Session_OnEnd 事件之后發生,當然Application_OnEnd 事件的處理過程也必須寫在 Global.asa 文件之中。
比如上面的程序中,若服務器關機必然會觸發Application_OnEnd事件,那么該事件就可以進行數據保存的工作,已使得下次數據的續沿。
當然Application_OnEnd 事件在應用程序退出時于Session_OnEnd 事件之后發生


<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
.............
Sub Application_OnEnd 
.............
End Sub 
.............
</SCRIPT> 



五、Application_OnStart
Application_OnStart 事件在首次創建新的會話( 即 Session_OnStart 事件 )之前發生。當WEB服務器啟動并允許對應用程序所包含的文件進行請求時就觸發Application_OnStart事件。


<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
.............
Sub Application_OnStart
.............
End Sub
.............
</SCRIPT>



所以現在可以將Global.asa內部的代碼可以想象


<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
.....................
End Sub 

Sub Session_OnStart 
.....................
End Sub 

Sub Session_OnEnd 
.....................
End Sub 

Sub Application_OnEnd 
.....................
End Sub 
</SCRIPT> 


具體Global.asa是怎么一回事?且聽下回分解啊:)

5大對象基本掌握了,來個例題練習下
 


<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<Html>
<title>猜數字游戲</title>
<body>
<%
'設置頁面不使用緩存
Response.Expires = 0
%>
<%
dim GuessNum
on error resume next
GuessNum=Request("Number")
if GuessNum="" then GuessNum="0" End if
GuessNum=Clng(GuessNum)

Session("Count")=Session("Count") + 1
if Session("Count") < 10 and GuessNum <> session("Number") then

%>

<form action="guessNumber.asp">
<input type="text" name="Number">
    <input type="submit" value="提交">
</form>
<hr>
<%
end if
if GuessNum<0 or guessNum>100 then
Response.write "請輸入1~100之間的整數"
elseif GuessNum=0 then
    session("Count") = 0
Randomize
    session("Number") = Int(rnd * 100 + 1)
Response.write "請輸入1~100之間的整數"
elseif GuessNum > session("Number") then
    response.write "你猜的太大了"
elseif GuessNum < session("Number") then
    response.write "你猜的太小了"
elseif GuessNum = session("Number") then
    response.write "祝賀你,猜對了"
end if

Response.write "<br>共猜了" & Session("Count") & "次"
if Session("Count")=10 then
Response.write "答案是" & Session("Number")
end if
%>
<a href="guessnumber.asp?Number=0">重新猜</a>
</body>
</html>



Test URL: http://www.cnbruce.com/test/aspcode/guessnumber.asp 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品国产专区91在线 | 国产精品亚洲一区二区 | 91免费精品国自产拍在线可以看 | 深夜福利在线播放 | 男同gay玩奴男同玩奴 | 99精品视频只99有精品 | 好男人好资源在线观看 | 久久无码人妻中文国产 | 草莓视频深夜释放 | 厨房里摸着乳丰满在线观看 | 国产清纯白嫩大学生正在播放 | 扒开女人屁股眼看个够 | 波多野结衣在线观看中文字幕 | 红楼影视h38bar在线线播放 | 九九久久精品 | 欧美无专区 | 国产福利一区二区三区 | 欧美精品久久久亚洲 | 欧美一区二区三区综合色视频 | 国产精品色拉拉免费看 | 亚洲国产高清一区二区三区 | 九九热在线视频观看这里只有精品 | 亚洲毛片免费看 | xxxxx性中国hd | 欧美日韩精品在线观看 | 亚洲国产韩国欧美在线不卡 | 国产精品亚洲片在线观看麻豆 | 高清男的插曲女的 欢迎你老狼 | 国产精品免费视频一区一 | 纲手被强喷水羞羞漫画 | 日韩先锋 | 久久精品WWW人人爽人人 | 欧美国产日韩综合 | 亚洲色图欧美偷拍 | 奇米成人 | 亚洲天堂男人的天堂 | 男女乱淫真视频播放网站 | 91综合精品网站久久 | 日本高清中文 | 精品AV综合导航 | 厨房里摸着乳丰满在线观看 |