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>
运行后,输入密码登录,如下图:
输入你要说的话,并按“发送”按钮发送出去。利用多个终端登录该页面,进行聊天。
示例代码下载
最新文章
- Opserver简单部署
- Linux 对比两个文本的交集和差集(comm)
- Aspose Cells 添加数据验证(动态下拉列表验证)
- Hello,Akka
- 线程技术 ☞ Future模式
- 使用MapReduce将HDFS数据导入到HBase(一)
- uibutton颜色设置
- 《java.util.concurrent 包源码阅读》24 Fork/Join框架之Work-Stealing
- Spring MVC(四)文件上传
- Error:java: Compilation failed: internal java compiler error 解决办法
- 【BZOJ4042】【CERC2014】parades 状压DP
- CSS的再深入(更新中&#183;&#183;&#183;)
- VOOKI:一款免费的Web应用漏洞扫描工具
- WDCP面板V3新版本安装与体验记录
- java基本语法一
- 简单的Restful工具类
- 百度地图JS API不能使用position:fixed
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-简介
- Python Day24
- Spring cloud Eureka 服务治理(搭建服务注册中心)
热门文章
- Echarts学习记录——如何去掉网格线及网格区域颜色
- 【防火墙技术连载11】强叔侃墙 攻击防范篇 流量型攻击之UDP Flood及防御
- ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)
- .NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
- [EF Core]数据迁移(二)
- AngularJS过滤排序思路
- 使用 STHTTPRequest 框架解析 Soap1.2 教程
- ubuntu声音问题
- Java 8函数式接口functional interface的秘密
- 【转】group_concat函数详解