在一起协同工作以完成某项任务的一组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>

运行后,输入密码登录,如下图:

输入你要说的话,并按“发送”按钮发送出去。利用多个终端登录该页面,进行聊天。


示例代码下载

Application.rar

最新文章

  1. Opserver简单部署
  2. Linux 对比两个文本的交集和差集(comm)
  3. Aspose Cells 添加数据验证(动态下拉列表验证)
  4. Hello,Akka
  5. 线程技术 ☞ Future模式
  6. 使用MapReduce将HDFS数据导入到HBase(一)
  7. uibutton颜色设置
  8. 《java.util.concurrent 包源码阅读》24 Fork/Join框架之Work-Stealing
  9. Spring MVC(四)文件上传
  10. Error:java: Compilation failed: internal java compiler error 解决办法
  11. 【BZOJ4042】【CERC2014】parades 状压DP
  12. CSS的再深入(更新中&#183;&#183;&#183;)
  13. VOOKI:一款免费的Web应用漏洞扫描工具
  14. WDCP面板V3新版本安装与体验记录
  15. java基本语法一
  16. 简单的Restful工具类
  17. 百度地图JS API不能使用position:fixed
  18. 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-简介
  19. Python Day24
  20. Spring cloud Eureka 服务治理(搭建服务注册中心)

热门文章

  1. Echarts学习记录——如何去掉网格线及网格区域颜色
  2. 【防火墙技术连载11】强叔侃墙 攻击防范篇 流量型攻击之UDP Flood及防御
  3. ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)
  4. .NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
  5. [EF Core]数据迁移(二)
  6. AngularJS过滤排序思路
  7. 使用 STHTTPRequest 框架解析 Soap1.2 教程
  8. ubuntu声音问题
  9. Java 8函数式接口functional interface的秘密
  10. 【转】group_concat函数详解