Application 对象
来源:互联网 发布:如何设置网络共享盘 编辑:程序博客网 时间:2024/04/29 20:00
可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟目录及其子目录中定义。因为多个用户可以共享 Application 对象,所以必须要有 Lock 和 Unlock 方法以确保多个用户无法同时改变某一属性。
语法
Application.method
集合
Contents 包含所有通过脚本命令添加到应用程序中的项。 StaticObjects 包含所有用 <OBJECT> 标记添加到会话中的对象。方法
Lock Lock 方法禁止其他客户修改 Application 对象的属性。 Unlock Unlock 方法允许其他客户修改 Application 对象的属性。事件
Application_OnEnd Application_OnStart上述事件的脚本在 global.asa 文件中声明。有关这些事件及 global.asa 文件的详细信息,请参阅 Global.asa Reference。
注释
您可以将值存储在 Application 集合中。存储在 Application 集合中的信息在整个应用程序中有效且具有应用程序作用域。下列脚本演示两种类型的变量的存储。
<% Application("greeting") = "Welcome to My Web World!"Application("num") = 25%>
每一个变量都是 Application Contents 集合的成员。
也可以为具有应用程序作用域的变量分配组件实例。若使用 Server.CreateObject 方法为变量分配组件实例,则该变量将成为 Application.Contents 集合的成员。若该变量是用 <OBJECT> 标记分配的,则该变量将成为 Application StaticObjects 集合的成员。
在为具有应用程序作用域的变量分配组件实例时一定要小心从事,因为某些组件不是为给定的应用程序作用域设计的。详细信息,请参阅《Programmer's Reference》中的为 ASP 部分创建组件中“Creating Components for ASP”部分的 Determining Component Scope。
如果为 Application Contents 集合中的变量分配组件实例,且使用 Visual Basic® Scripting Edition 作为主脚本语言,则必须使用 Set 关键字。在下列脚本中对此进行解释。
<% Set Application("Obj1") = Server.CreateObject("MyComponent") %>
可以引用并发 Web 页上的 MyComponent
的属性和方法,具体做法是使用脚本
<% Application("Obj1").MyObjMethod %>
或展开该对象的一个本地副本并使用脚本
<% Set MyLocalObj1 = Application("Obj1") MyLocalObj1.MyObjMethod%>
另一个创建具有应用程序作用域对象的方法是在 global.asa 文件中使用 <OBJECT> 标记。详细信息,请参阅Global.asa 参考.
不能在 Application 对象中存储内建对象。例如,下面的每一行都返回一个错误。
<%Set Application("var1") = SessionSet Application("var2") = RequestSet Application("var3") = ResponseSet Application("var4") = ServerSet Application("var5") = ApplicationSet Application("var6") = ObjectContext%>
您应该清楚您给定应用程序作用域的组件所使用的线程模型。用于开发组件的线程模型将对是否将组件实例分配给 Application 集合中的变量产生很大影响。详细信息,请参阅 Component Design Guidelines。
若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
<% Application("StoredArray")(3) = "new value" %>
这是因为 Application 对象是作为集合被实现的。数组元素 StoredArray(3)
未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。
我们极力建议您在将数组存储在 Application 对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Application 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。
---file1.asp---<%'Creating and initializing the arraydim MyArray()Redim MyArray(5)MyArray(0) = "hello"MyArray(1) = "some other string"'Storing the array in the Application objectApplication.LockApplication("StoredArray") = MyArrayApplication.UnlockResponse.Redirect("file2.asp")%>---file2.asp---<%'Retrieving the array from the Application Object'and modifying its second elementLocalArray = Application("StoredArray")LocalArray(1) = " there"'printing out the string "hello there"Response.Write(LocalArray(0)&LocalArray(1))'Re-storing the array in the Application object'This overwrites the values in StoredArray with the new valuesApplication.LockApplication("StoredArray") = LocalArrayApplication.Unlock%>
示例
下列示例使用应用程序变量 NumVisits
存储某特定页被访问的次数。调用 Lock 方法是为了保证只有当前客户才能访问和更改 NumVisits
。调用 Unlock 方法之后,即可允许其他用户访问 Application 对象。
<%Application.LockApplication("NumVisits") = Application("NumVisits") + 1Application.Unlock%> This application page has been visited <%= Application("NumVisits") %> times!
- Application 对象
- Application对象
- Application对象
- Application对象
- Application对象
- Application 对象
- Application对象
- Application对象
- Application 对象
- Application对象
- Application对象
- Application对象
- Application 对象
- Application对象
- application对象
- Application对象
- application对象
- application对象
- Cookie的使用
- 什么是Session
- JavaScript使用面向对象思想处理cookie
- 如果在sql server2000里访问oracle
- ACL的基本原理、功能与局限
- Application 对象
- RFC 2865 RADIUS 中文翻译
- Session对象
- Rope 支撑起操纵大量字符串的系统
- 戴尔:要以虚拟化推动企业采用Linux
- session的属性设置
- asp对象cookie应用集合
- j2ee清除缓存的三句话
- Cookie 有什么用途