web应用程序设计:ASP.NET/PHP/JSP技术教程
上QQ阅读APP看书,第一时间看更新

3.4 Application对象

在同一虚拟目录及其子目录下的所有文件构成了ASP应用程序。我们可以使用Ap-plication对象在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久地保存数据,解决使用Sever.CreateObject()方法创建对象实例存在的生命周期受限于网页以及网页变量的生命周期问题;Application对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。

语法格式:Application.属性︱方法︱事件

3.4.1 Application属性

Application对象没有内置的属性,但是用户可以用以下语句代码自行创建其属性,通常也称之为“Application变量”。

语法格式Ⅰ:Application("变量名")=变量名

语法格式 Ⅱ:Set Application("对象实例名")=对象实例名

该语句将网页变量或对象实例存储到Application对象中,而使用下面的语句代码可以将网页变量或对象实例还原回来。

语法格式Ⅰ:变量名=Application("变量名")

语法格式 Ⅱ:Set对象实例名=Application("对象实例名")

一旦分配了Application对象的属性,它就会持久地存在,直到关闭Web服务器的服务。由于存储在Application对象中的数值可以被应用程序的所有用户读取,所以Appli-cation对象的属性特别适合在应用程序的用户之间传递信息。

3.4.2 Application方法

Application对象有两个方法,分别是Lock()方法和UnLock()方法。它们是用于处理多个用户对存储在Application中的数据进行读写的问题。

(1)Lock()方法。它用于锁定对象、禁止其他用户修改Application中的属性。这样可以确保在同一时刻仅有一个用户可修改或存取Application中的变量。如果用户没有调用Unlock方法,则服务器将仅在ASP文件结束或超时后才解除对Application对象的锁定。

(2)UnLock()方法。它用于解除对Application对象的锁定,允许其他用户修改Application中的属性。这样可以使下一个用户能修改Application中的属性值。所以利用Application对象可以方便地记录访客人数。

下面是用Application对象做的一个简单的计数器。

【例3.4.1】一个简单的计数器实例。

3-4-1. asp程序代码如下:

程序执行结果如图3.4.1所示。

图3.4.1 主页计数器网页

3.4.3 Application事件

(1)Application_OnStart事件。该事件在首次创建新的会话(即Session_OnStart事件)之前发生,用于初始化变量、创建对象或运行其他代码。该事件只触发一次,就是第一个用户的第一次请求。Application_OnStart事件的处理过程必须写在Global.asa文件中。

语法格式:

(2)Application_OnEnd事件。该事件在应用程序退出时于Session_OnEnd事件之后发生。如在Internet Service Manager中关闭了网络服务,Application_OnEnd事件就会触发。Application_OnEnd事件的处理过程也必须写在Global.asa文件中。

语法格式: