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

ASP入门(十二)-Application对象的更多相关文章

  1. ASP入门(二十二)-连接数据库

    ADO 简介 在 ASP 中访问数据库使用的 ADO 组件. ADO 是一项微软的技术. ADO 指 ActiveX 数据对象(ActiveX Data Objects). ADO 是微软的 Acti ...

  2. ASP 三十二条精华代码 (1)

    ASP 三十二条精华代码 (1) 2009-08-10 09:53:03  www.hackbase.com  来源:互联网 1. oncontextmenu="window.event.r ...

  3. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  4. (ASP.net)利用Application对象制作简单聊天室

    1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程 ...

  5. ASP入门(二十)-INSERT、UPDATE、DELETE语句

    插入记录 INSERT INTO 语句 单条记录插入语法 INSERT INTO target [(field1[, field2[, ...]])] VALUES (value1[, value2[ ...

  6. ES6入门十二:Module(模块化)

    webpack4打包配置babel7转码ES6 Module语法与API的使用 import() Module加载实现原理 Commonjs规范的模块与ES6模块的差异 ES6模块与Nodejs模块相 ...

  7. R入门(二)-对象以及它们的模式和属性

    对象以及它们的模式和属性 R操作的实体在技术上说是对象.R的对象类型包括数值型,复数型,逻辑型,字符型和原味型. “原子”型对象:对象的元素都是一样的类型或模式,如逻辑向量和字符串向量. 列表对象:列 ...

  8. ASP入门(二十三)- 数据库插入、更新和删除操作

    我们这里介绍如何使用 Recordset 对象进行插入.更新和删除操作,顺便和 SQL 语句对比. 插入记录 AddNew 方法用于插入一条记录,首先打开一个记录集,并且这个记录具备可写特性,而后调用 ...

  9. ASP入门(二十一)- 如何自己获取 ADO 连接字符串

    1.新建一个文本文件,并将文件名修改为[ado.udl] 注意 如果不显示扩展名,请在资源管理器的[查看 | 选项]对话框中去掉"隐藏已知文件类型的扩展名"勾就可以了. 2.双击这 ...

  10. java web开发入门十二(idea创建maven SSM项目需要解决的问题)基于intellig idea(2019-11-09 11:23)

    一.spring mvc action返回string带双引号问题 解决方法: 在springmvc.xml中添加字符串解析器 <!-- 注册string和json解析适配器 --> &l ...

随机推荐

  1. oracle sql 高级

    1  时间   如果是从当前时间到前一个月的这个时候之间的记录总条数:   select count(1)   from uis_md_stcustom u  where firsttime betw ...

  2. Word中如何从某一页重新开始页码

  3. [Asp.net core 2.0]Ueditor 图片上传

    摘要 在项目中要用到富文本编辑器,包含上传图片,插入视频等功能.但ueditor只有.net版本,没有支持core.那么上传等接口就需要自己实现了. 一个例子 首先去百度ueditor官网下载简化版的 ...

  4. webpack原理与实战

    webpack是一个js打包工具,不一个完整的前端构建工具.它的流行得益于模块化和单页应用的流行.webpack提供扩展机制,在庞大的社区支持下各种场景基本它都可找到解决方案.本文的目的是教会你用we ...

  5. 蜻蜓FM涉嫌诈骗投资人和广告主源代码剖析

    引用自:https://github.com/cryfish2015/QingTingCheat 本文主要内容,引用自知乎的这篇文章:如何评价蜻蜓 FM 伪造用户活跃度等数据 感谢“左莫”.“任正”等 ...

  6. tms web core程序部署

    tms web core程序部署 笔者把已经开发好的TMS WEB CORE程序部署到阿里云服务器上面,来作为例子. 1)复制TMS WEB CORE前端程序到服务器的c:\room\ 2)复制TMS ...

  7. Android之针对webview的缓存

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  8. Java并发编程的艺术(二)——重排序

    当我们写一个单线程程序时,总以为计算机会一行行地运行代码,然而事实并非如此. 什么是重排序? 重排序指的是编译器.处理器在不改变程序执行结果的前提下,重新排列指令的执行顺序,以达到最佳的运行效率. 重 ...

  9. 使用DDMS中的内存监测工具Heap来优化内存

    最近在做一个照片墙的应用,涉及到很多知识,其中难点在于如何应对数量庞大的图片,这就涉及到内存管理的知识了.今天介绍的工具是DDMS中自带的Heap,它可以显示出当前引用占用的内存,剩余的内存等信息.下 ...

  10. SVG.js 元素操作整理(一)

    一.属性操作Attributes var draw = SVG('svg1').size(300, 300); //attr() 属性操作 //设置属性的值 var rect = draw.rect( ...