ASP内建对象Application
作者:书生
在上一篇中作者给大家详细介绍了 ASP 内建对象 Response 的使用方法,在这一篇中作者将继续给大家介绍另两个非常实用且重要的 ASP 的内建对象 Application 和 Session。下面就让我们一起来学习 Application 对象。
一、属性
虽然 Application 对象没有内置的属性,但我们可以使用以下句法设置用户定义的属性也可称为集合。
Application(" 属性 / 集合名称 ")= 值
我们可以使用如下脚本声明并建立 Application 对象的属性。
< %
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
%>
二、方法
Application 对象有两个方法,它们都是用于处理多个用户对存储在 Application 中的数据进行写入的问题
1、Lock 方法禁止其他客户修改 Application 对象的属性。
Lock 方法阻止其他客户修改存储在 Application 对象中的变量,以确保在同一时刻仅有一个客户可修改和存取 Application 变量。如果用户没有明确调用 Unlock 方法,则服务器将在 .asp 文件结束或超时后即解除对 Application 对象的锁定。
让我们来看看下面这段用 Application 来记录页面访问次数的程序 :将以上脚本保存在你的 .asp 文件中,就轻而易举地给你的页面添加了一个计数器。
2、和 Lock 方法相反,Unlock 方法允许其他客户修改 Application 对象的属性。
在上面的例子中,上述例子中,Unlock 方法解除对象的锁定,使得下一个客户端能够增加 NumVisits 的值。
三、事件
1、Application_OnStart
Application_OnStart 事件在首次创建新的会话 ( 即 Session_OnStart 事件 ) 之前发生。当 WEB 服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart 事件。Application_OnStart 事件的处理过程必须写在 Global.asa 文件之中。2、Application_OnEnd
Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global.asa 文件之中。
下面让我们来看看在使用 Application 对象时必须注意的一些事项。
不能在 Application 对象中存储 ASP 内建对象。例如,下面的每一行都返回一个错误。 若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
< % Application("StoredArray")(3) = "new value"
%>
一、属性
1、SessionID
SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。
2、TimeOut
Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。
二、方法
Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除所有存储在 Session 对象中的对象并释放这些对象的源。如果您未明确地调用
Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。
< % Session.Abandon %>
三、事件
Session 对象有两个事件可用于在 Session 对象启动和释放是运行过程。
1、Session_OnStart 事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。
尽管在 Session_OnStart 事件包含 Redirect 或 End 方法调用的情况下 Session 对象仍会保持,然而服务器将停止处理 Global.asa 文件并触发 Session_OnStart 事件的文件中的脚本。
为了确保用户在打开某个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 事件中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 事件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用 Response.Redirect 方法启动网页。程序如下 :2、Session_OnEnd 事件在会话被放弃或超时发生。
关于使用 Session 对象需要注意的事项 Application 对象相近,请参照前文。
会话可以通过以下三种方式启动 :
1、一个新用户请求访问一个 URL,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。
2、用户在 Session 对象中存储了一个值。
3、用户请求了一个应用程序的 .asp 文件,并且该应用程序的Global.asa 文件使用 < OBJECT> 标签创建带有会话作用域的对象的实例。
如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通过在 Internet 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。