ASP入門(十二)-Application對象


在一起協同工作以完成某項任務的一組ASP文件稱為一個應用程序。Application 對象用於把這些文件捆綁在一起。

Application 對象用於在整個應用程序生存期間保存信息。

Application 對象用於存儲和訪問來自任何頁面的變量,類似於 Session 對象。不同之處在於,所有用戶分享一個 Application 對象,而 Session 對象和用戶的關系是一一對應的。

Application 對象沒有屬性。

Application 對象的原理是這樣的,在每次應用程序啟動(即 IIS 的啟動)時,會在內存中請求一部分空間來保存數據,這個數據對於訪問網站的所有用戶來說是共享的,當在 IIS 中停止站點或者服務器重啟時,Application 對象所存儲的信息將丟失。

Application 對象的方法和集合

與 Session 對象類似,Application 對象也有 Contents 集合,下面的例子演示了如何設定和讀取數據:

<%
Application.Contents("WebSite") = "http://pchmonster.cnblogs.com"
Dim WebSite
WebSite = Application("WebSite")
Response.Write(WebSite)
%>

Application 對象也有 RemoveRemoveAll 兩個方法,其使用方法和 Session 對象相應方法類似,這里不再詳細描述了。

Applicaton 對象另外一對方法是 LockUnLock 方法。

Lock 方法阻止其他用戶修改 Application 對象中的變量(用來確保同一時間只有一位用戶可以修改 Application 對象變量)。

Unlock 方法使其他用戶能夠修改存儲在 Application 對象中的變量(在它被使用 Lock 方法鎖定之后)

下面的例子,Lock 方法可以防止一個以上用戶訪問變量 Visits,用 Unlock 方法來對已鎖定的對象進行解鎖,這樣下一個用戶就可以增加變量 Visits 的值。

<%
Application.Lock()
Application("Visits") = Application("Visits") + 1
Application.UnLock()
%>
<h3>This page has been visited
<%=Application("Visits")%> times.</h3>

Application 小案例

在 ASP 剛問世時候,有很多使用 ASP 制作的聊天室,它的原理就是利用 Application 集合是訪問站點所有用戶共享的特點,將所有用戶所發表的聊天句都存儲在 Application 中。

當然這樣的方法需要占用比較大的服務器內存資源,因此已經很少在使用了。

本例代碼如下(ChatRoom.asp):

<%
If UCase(Trim(Request.ServerVariables("REQUEST_METHOD"))) = "POST" Then
  Dim sCurrentWord
  sCurrentWord = Trim(Request.Form("word"))
  Application.Lock()
  Application("chatroom") = Application("chatroom") & "<br>" & Session.SessionID & "-&gt;" & sCurrentWord
  Application.UnLock()
End If
%>
<h3>以下是聊天室的內容:</h3>
<p><%=Application("chatroom")%></p>
<hr>
<form method="post" action="">
請輸入要說的話:<input name="Word" type="text"/>
<input type="submit" value="發送"/>
</form>

運行后,輸入密碼登錄,如下圖:

20150814010

輸入你要說的話,並按“發送”按鈕發送出去。利用多個終端登錄該頁面,進行聊天。

20150814011


示例代碼下載

Application.rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM