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

    写给像我这样需要使用latex编写论文的小菜鸟,给出demo和注释,高级部分自己参透(默认你已经搭好环境). 1.搭论文架子 demo1 \documentclass[10pt,a4paper]{ar ...

  2. C#轻量级高性能日志组件EasyLogger

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第六部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  3. 在busybox里使用ulimit命令

    刚才想使用ulimit修改用户进程的用户栈的大小,发现busybox里没有这个命令,上google搜索得到如下解释: "ulimit" is a shell builtin, me ...

  4. java 对mongodb的操作

    java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo( ...

  5. RabbitMQ的应用场景以及基本原理介绍(转)

    本文转自https://blog.csdn.net/whoamiyang/article/details/54954780 1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanve ...

  6. C#编程(七十)----------dynamic类型

    原文链接 : http://blog.csdn.net/shanyongxu/article/details/47296033 dynamic类型 C#新增了dynamic关键字,正是因为这一个小小的 ...

  7. Cocos2d-x之Schedule

    Cocos2dx的定时器 from://http://blog.linguofeng.com/archive/2012/11/14/cocos2d-x-Schedule.html 一.schedule ...

  8. Linux学习10-CentOS搭建nginx负载均衡环境

    前言 当自己的web网站访问的人越来越多,一台服务器无法满足现有的业务时,此时会想到多加几台服务器来实现负载均衡. 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,怎样将同一个域名的访问分散 ...

  9. nginx反向代理vue访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题

    问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...

  10. 用 iOS-System-Services 框架获取iOS设备所用的设备信息

    参考资料地址 https://github.com/Shmoopi/iOS-System-Services 百度云盘下载地址 http://pan.baidu.com/s/1c05ot1m This ...