ASP Application

在一起协同工作以完成某项任务的一组 ASP 文件称为一个应用程序。Application 对象用于把这些文件捆绑在一起。

Application 对象

Web 上的一个应用程序可以是一组 ASP 文件。这些 ASP 文件一起协同工作来完成某项任务。Application 对象用于把这些文件捆绑在一起。

Application 对象用于存储和访问来自任何页面的变量,类似于 Session 对象。不同之处在于,所有的用户分享一个 Application 对象,而 Session 对象和用户的关系是一一对应的。

Application 对象存有会被应用程序中的许多页面使用的信息(比如数据库连接信息)。可以从任何的页面访问这些信息。同时您也可以在一个地方改变这些信息,随后这些改变会自动反映在所有的页面上。

Application 对象的集合、方法和事件的描述如下:

Contents集合

Contents集合包含着通过脚本命令添加到application/session的所有项目。

提示:要从Contents集合中删除项目,请使用Remove和RemoveAll方法。

语法

Application.Contents(Key)

Session.Contents(Key)

参数说明:key--必需。要取回的项目的名称。

实例一

针对Application对象的实例,name 和 objtest 都会被追加到 Contents 集合中:

<% 
Application("name")="IMOOC"
Set Application("objtest")=Server.CreateObject("ADODB.Connection")
%>

实例二

针对Session对象的实例,name 和 objtest 都会被追加到 Contents 集合中:

<%
Session("name")="Hege"
Set Session("objtest")=Server.CreateObject("ADODB.Connection")
%>

StaticObjects 集合

StaticObjects 集合包含所有使用 HTML 的 <object> 标签追加到 application/session 的对象。

语法

Application.StaticObjects(Key)

Session.StaticObjects(Key)

参数说明:key--必需。要取回的项目的名称。

实例一

针对Application对象循环遍历 StaticObjects 集合:

<%
for each x in Application.StaticObjects
  Response.Write(x & "<br>")
next
%>

实例二

针对Session对象循环遍历 StaticObjects 集合:

<%
for each x in Session.StaticObjects
  Response.Write(x & "<br>")
next
%>

Contents.Remove 方法

COntent.Remove方法从Contents集合中删除一个项目。

语法

 Application.Contents.Remove(name|index)

 Session.Contents.Remove(name|index)

参数说明:

name--要删除的项目的名称。

index--要删除的项目的索引号。

实例一

针对Application对象:

<%
 Application("test1")=("First test")
 Application("test2")=("Second test")
 Application("test3")=("Third test")

 Application.Contents.Remove("test2")

 for each x in Application.Contents
   Response.Write(x & "=" & Application.Contents(x) & "<br>")
 next
 %>

 输出:

 test1=First test
 test3=Third test

实例二

针对Seesion对象:

 <%
 Session("test1")=("First test")
 Session("test2")=("Second test")
 Session("test3")=("Third test")

 Session.Contents.Remove("test2")

 for each x in Session.Contents
   Response.Write(x & "=" & Session.Contents(x) & "<br>")
 next
 %>

 输出:

 test1=First test
 test3=Third test

Contents.RemoveAll 方法

Contents.RemoveAll 方法从 Contents 集合删除所有的项目。

语法

 Application.Contents.RemoveAll()

 Session.Contents.RemoveAll()

实例一

针对Application对象:

<%
 Application.Contents.RemoveAll()
 %>

实例二

针对Session对象:

 <%
 Session.Contents.RemoveAll()
 %>

Lock和Unlock方法

Lock 方法阻止其他用户修改 Application 对象中的变量 (用来确保同一时间只有一位用户可修改 Application 变量)。

Unlock 方法使其他用户能够修改存储在 Application 对象中的变量 (在它被使用 Lock 方法锁定之后)。

语法

 Application.Lock

 Application.Unlock

实例

下面的实例用 Lock 方法来防止一个以上的用户在同一时间访问变量 visits,用 Unlock 方法来对已锁定的对象进行解锁,这样下一个用户就可以增加变量 visits 的值:

 <%
 Application.Lock
 Application("visits")=Application("visits")+1
 Application.Unlock
 %>

 This page has been visited
 <%=Application("visits")%> times!

Application_OnStart 和 Application_OnEnd 事件

Application_OnStart 事件发生在第一个新的会话创建之前 (当 Application 对象第一次被引用时)。

此事件放置在 Global.asa 文件中。

注意:在 Application_OnStart 事件脚本中引用 Session、Request 或者 Response 对象会引发错误。

Application_OnEnd 事件发生在应用程序结束时 (当 web 服务器停止运行时)。

此事件放置在 Global.asa 文件中。

注意:MapPath 方法无法用于 Application_OnEnd 代码中。

语法

 <script language="vbscript" runat="server">

 Sub Application_OnStart
 . . . 
 End Sub

 Sub Application_OnEnd
 . . . 
 End Sub

 </script>

实例

Global.asa:

 <script language="vbscript" runat="server">

 Sub Application_OnEnd()
 Application("totvisitors")=Application("visitors")
 End Sub

 Sub Application_OnStart
 Application("visitors")=0
 End Sub

 Sub Session_OnStart
 Application.Lock
 Application("visitors")=Application("visitors")+1
 Application.UnLock
 End Sub

 Sub Session_OnEnd
 Application.Lock
 Application("visitors")=Application("visitors")-1
 Application.UnLock
 End Sub

 </script>

在 ASP 文件中显示当前访问者的数目:

<html>
 <head>
 </head>
 <body>
 <p>
 There are <%response.write(Application("visitors"))%>
 online now!
 </p>
 </body>
 </html>


本内容均来自互联网,仅供参考,如有侵权请及时通知本站予以删除。邮箱:wiki#imooc.com (#改成@)

意见反馈 帮助中心 APP下载
官方微信