關于ASP內置對象Application的詳細解說
本文提供的是關于ASP內置對象Application的詳細解說,ASP初學者們可以進來學習學習。
在 ASP 的內建對象中除了用于發(fā)送、接收和處理數據的對象外,還有一些非常實用的代表 Active Server 應用程序和單個用戶信息的對象。
讓我們先來看看 Application 對象。在同一虛擬目錄及其子目錄下的所有 .asp 文件構成了 ASP 應用程序。我們非但可以使用 Application 對象,在給定的應用程序的所有用戶之間共享信息,并在服務器運行期間持久的保存數據。而且,Application 對象還有控制訪問應用層數據的方法和可用于在應用程序啟動和停止時觸發(fā)過程的事件。
下面就讓我們一起來學習 Application 對象。
一、屬性
雖然 Application 對象沒有內置的屬性,但我們可以使用以下句法設置用戶定義的屬性也可稱為集合。
Application(" 屬性 / 集合名稱 ")= 值
我們可以使用如下腳本聲明并建立 Application 對象的屬性。
< %
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
%>
一旦我們分配了 Application 對象的屬性,它就會持久地存在,直到關閉 Web 服務器服務使得 Application 停止。由于存儲在 Application 對象中的數值可以被應用程序的所有用戶讀取,所以 Application 對象的屬性特別適合在應用程序的用戶之間傳遞信息。
二、方法
Application 對象有兩個方法,它們都是用于處理多個用戶對存儲在 Application 中的數據進行寫入的問題
1、Lock 方法禁止其他客戶修改 Application 對象的屬性。
Lock 方法阻止其他客戶修改存儲在 Application 對象中的變量,以確保在同一時刻僅有一個客戶可修改和存取 Application 變量。如果用戶沒有明確調用 Unlock 方法,則服務器將在 .asp 文件結束或超時后即解除對 Application 對象的鎖定。
讓我們來看看下面這段用 Application 來記錄頁面訪問次數的程序 :
< %
Dim NumVisitsNumVisits=0
Application.LockApplication("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
歡迎光臨本網頁,你是本頁的第 < %= Application("NumVisits") %> 位訪客 !
將以上腳本保存在你的 .asp 文件中,就輕而易舉地給你的頁面添加了一個計數器。
2、和 Lock 方法相反,Unlock 方法允許其他客戶修改 Application 對象的屬性。
在上面的例子中,上述例子中,Unlock 方法解除對象的鎖定,使得下一個客戶端能夠增加 NumVisits 的值。
三、事件
1、Application_OnStart
Application_OnStart 事件在首次創(chuàng)建新的會話 ( 即 Session_OnStart 事件 ) 之前發(fā)生。當 WEB 服務器啟動并允許對應用程序所包含的文件進行請求時就觸發(fā) Application_OnStart 事件。Application_OnStart 事件的處理過程必須寫在 Global.asa 文件之中。
Application_OnStart 事件的語法如下 :
< SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart. . .
End Sub
< /SCRIPT>
2、Application_OnEnd
Application_OnEnd 事件在應用程序退出時于 Session_OnEnd 事件之后發(fā)生,Application_OnEnd 事件的處理過程也必須寫在 Global.asa 文件之中。
下面讓我們來看看在使用 Application 對象時必須注意的一些事項。
不能在 Application 對象中存儲 ASP 內建對象。例如,下面的每一行都返回一個錯誤。
< %
Set Application("var1")=Session
Set Application("var2")=Request
Set Application("var3")=Response
Set Application("var4")=Server
Set Application("var5")=Application
Set Application("var6")=ObjectContext
%>
若您將一個數組存儲在 Application 對象中,請不要直接更改存儲在數組中的元素。例如,下列的腳本無法運行。
< % Application("StoredArray")(3) = "new value" %>