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 对象也有 Remove 和 RemoveAll 两个方法,其使用方法和 Session 对象相应方法类似,这里不再详细描述了。
Applicaton 对象另外一对方法是 Lock 和 UnLock 方法。
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 & "->" & 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>
运行后,输入密码登录,如下图:
输入你要说的话,并按“发送”按钮发送出去。利用多个终端登录该页面,进行聊天。
示例代码下载
ASP入门(十二)-Application对象的更多相关文章
- ASP入门(二十二)-连接数据库
ADO 简介 在 ASP 中访问数据库使用的 ADO 组件. ADO 是一项微软的技术. ADO 指 ActiveX 数据对象(ActiveX Data Objects). ADO 是微软的 Acti ...
- ASP 三十二条精华代码 (1)
ASP 三十二条精华代码 (1) 2009-08-10 09:53:03 www.hackbase.com 来源:互联网 1. oncontextmenu="window.event.r ...
- Android入门(十二)SQLite事务、升级数据库
原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...
- (ASP.net)利用Application对象制作简单聊天室
1.共四个页面,Default.aspx默认主页,Default2.aspx聊天室 default3.aspx显示用户列表,default4.aspx显示聊天内容,添加一个Global.asax全局程 ...
- ASP入门(二十)-INSERT、UPDATE、DELETE语句
插入记录 INSERT INTO 语句 单条记录插入语法 INSERT INTO target [(field1[, field2[, ...]])] VALUES (value1[, value2[ ...
- ES6入门十二:Module(模块化)
webpack4打包配置babel7转码ES6 Module语法与API的使用 import() Module加载实现原理 Commonjs规范的模块与ES6模块的差异 ES6模块与Nodejs模块相 ...
- R入门(二)-对象以及它们的模式和属性
对象以及它们的模式和属性 R操作的实体在技术上说是对象.R的对象类型包括数值型,复数型,逻辑型,字符型和原味型. “原子”型对象:对象的元素都是一样的类型或模式,如逻辑向量和字符串向量. 列表对象:列 ...
- ASP入门(二十三)- 数据库插入、更新和删除操作
我们这里介绍如何使用 Recordset 对象进行插入.更新和删除操作,顺便和 SQL 语句对比. 插入记录 AddNew 方法用于插入一条记录,首先打开一个记录集,并且这个记录具备可写特性,而后调用 ...
- ASP入门(二十一)- 如何自己获取 ADO 连接字符串
1.新建一个文本文件,并将文件名修改为[ado.udl] 注意 如果不显示扩展名,请在资源管理器的[查看 | 选项]对话框中去掉"隐藏已知文件类型的扩展名"勾就可以了. 2.双击这 ...
- java web开发入门十二(idea创建maven SSM项目需要解决的问题)基于intellig idea(2019-11-09 11:23)
一.spring mvc action返回string带双引号问题 解决方法: 在springmvc.xml中添加字符串解析器 <!-- 注册string和json解析适配器 --> &l ...
随机推荐
- SQL Server、Oracle和MySQL中查出值为NULL的替换
参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...
- delphi 服务程序
http://www.delphifans.com/InfoView/Article_662.html 用Delphi创建服务程序 Windows 2000/XP和2003等支持一种叫做"服 ...
- JavaScript 扩展运算符
扩展运算符格式扩展运算符格式很简单,就是三个点(...) 扩展运算符作用???扩展运算符允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置扩展. ...
- 交叉编译gdb和gdbserver
从http://ftp.gnu.org/gnu/gdb/下载最新的gdb,我下载的是gdb-8.0. 编译aarch32(>armv5): #!/bin/bash export CC=arm-n ...
- 总结ASP.NET MVC视图页使用jQuery传递异步数据的几种方式
在ASP.NET MVC的视图页向控制器传递异步数据,可能是数组,JavaScript对象,json,表单数据,等等. 关于数据,JavaScript对象有时候和json长得一模一样,有么有? var ...
- 认识TWICImage类
Graphics 单元新增了 TWICImage 类, 该类的功能源于新增的 Wincodec.pas 单元. WIC 支持的图像有 BMP.PNG.ICO.JPEG.GIF.TIFF.HDP(HDP ...
- Android App组件之Activity
Android App组件之Activity 1 activit介绍 Activities 是Android的四大组件之一,其余三大组件是service.broadcast和content provi ...
- jquery插件--在input下输入密码时提示大写锁定键
//密码大写输入提示 function capitalTip(id){ $('#' + id).after('<div class="capslock" id="c ...
- 实习医生格蕾第十三季/全集Grey’s Anatomy迅雷下载
英文全名Grey's Anatomy,第13季(2016)ABC.本季看点:<实习医生格蕾>(Grey’s Anatomy)上季终集里,又一名资深演员离开了——Sara Ramirez扮演 ...
- 判断listview滑动方向的代码片段
mListView.setOnScrollListener(new OnScrollListener() { private int lastIndex = 0; @Override public v ...