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

posted on 2015-08-14 23:54  pchmonster  阅读(3540)  评论(0编辑  收藏  举报

导航