Application对象.doc_第1页
Application对象.doc_第2页
Application对象.doc_第3页
Application对象.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.5 Application对象Application 对象的主要功能是用来存储和获取可以被所有用户之间进行共享的信息,它具有集合、方法和事件,但不具备属性。一般的网站上都有一些应用程序,比如有BBS、电子商务等。而每个应用程序往往有是由多个ASP文件构成。这些ASP文件是整个应用程序中的子程序,彼此不是完全独立的,存在着某种关系。而Application对象负责对网站上各应用程序间共享的程序进行管理,并对应用程序的整个周期的设置进行控制。由于ASP程序中的变量在程序重新执行之前都会恢复位Empty,所以上次运行的结果无法保存在有关的变量中。而Application对象中的数据可以被使用者所共享。这样,我们可以使用Application对象记录在程序运行期间不同用户所需要共享的数据。下面是ASP的Application对象的一些特性:数据可以在Application内部共享,因此可以覆盖多个用户。一个Application包含事件可以触发某个Application脚本。一个对象的例子可以被整个Application共享。个别的Application可以用Internet Service Manager来设置而获得不同属性。单独的Application可以隔离出来在他们自己的内存中运行,即如果一个人的Application遭到破坏,也不会影响其他人。可以停止一个Application而不会影响到其他应用。一个网站可以有不止一个的Application对象。例如可以根据针对于个别任务的一些ASP文件创建个别的Application对象,也可以创建了一个Application对象来用于全部公用用户,而再次创建另外一个来限制在网络管理员的范围。还可以在位于同一台服务器的不同网站创建不同的Application对象。6.5.1 Application对象的设置一个Application的根目录由Internet Service Manager来设定,这时此目录以及其子目录均属于这个Application。不过如果某一个子目录也进行了设定,将被认为是另一个Application,如果要设定一个Application的话,可以使用下面的方法: 可以从Microsoft Internet Iinformation Server程序组中执行Internet Service Manager。 在树型导航栏中点击您的默认站名。 选择一个存在的路径(您需要创建Application的路径),或者创建一个这样的路径。 点击属性图标或者右键该目录名称然后选择属性项。 在属性图标中,选择主目录或者虚拟目录项。 在Application Setting区中,点击Great键。当创建完成Application后,就可以在Application设置区域中进行属性设置,比如可以限定是否使用Session和进行Buffer输出等等。而进行了这种设置之后就可以使 用自己的Global.asa文件来创建自己的事件。6.5.2 Application对象的数据集合Application对象和Session对象既有联系又有区别,联系是它们都可以存储信息,区别则在于,网上的用户都可以使用Application对象,因而是需要加锁的;而Session对象只是针对一个客户。Application对象使用语法为:Application.数据集合|方法。Application对象和Session对象一样,也有Session和StaticObject两个数据集合,它们的特点如表6-12所示。表6-12 Application对象的数据集合表数据集合名功能简述Contents利用索引可以取回存在于服务器端的任一个由ASP Script所建立的Application内的变量或对象的值StaticObjct利用索引可以取回存在于服务器端的任一个由所建立的Application内容对象的值6.5.3 Application对象的方法由于在同一时间可能会有许多使用者同时访问网页,也就是说可能会出现多个人同时更新同一个变量的情况。为了避免发生这种情况,系统提供了Lock和Unlock方法控制对Application对象同步操作。Application对象的方法如表6-13所示。表6-13 Application对象的方法表方法名功能简述Lock防止其他客户端更改Application对象的值Unlock刚好于Llock方法相反,允许其他客户端更改Application对象的值使用Lock方法时,系统将禁止其他用户修改存储在Application对象中的变量,以确保在同一时间仅有一个用户可以修改和存取Application对象。当一个ASP程序在某段时间内需要修改Application对象中的变量,就应该使用Lock方法独占Application对象。当处理完成后,不再需要独占方式时,使用Unlock方法解除对Application对象的锁定。在 ASP 中,我们把一个虚拟目录及其子目录下的所有.asp 文件称为一个 ASP 应用程序。从传统编程的角度来看,一个单独的 ASP 页面就如同一个完成特定功能的过程或者函数。而一组相关的 ASP 页面组合在一起,就构成了一个完整的应用程序。使用 Application 对象,能够使得访问同一个 ASP 应用的多个用户之间进行信息共享,我们可以把公有变量存储在 Application 对象中,变量的类型可以是数字、字符串等简单数据类型,也可以是数组和对象等比较复杂的数据类型,这些变量可以在所有页面上被所有用户使用。在 Application对象中创建的变量,我们称之为应用程序变量。 1. 创建和读取简单数据类型变量 Application 对象创建变量的一般语法格式如下所示: Application(“变量名称”) = 变量值 对变量进行引用,从而获取变量的值: Application(“变量名称”) 在 Application 对象中,创建简单数据类型的应用程序变量是很方便的,也正由于 Application 对象能够进行用户之间的信息共享,因而 Application 对象的最典型应用之一就是可以在 Application 对象中创建一个公有变量, 用来统计页面的访问人数。 下面编写一个用于记录网页访问量的计数器,每当有新的用户访问这个网页时,首先调用这个计数器程序,使计数器的值增加1。程序如下:这是第位访问者!在程序中首先用Application.Lock对要修改的Application对象加锁。然后,将计数器的值增加1。最后解除Application对象上的锁。运行该程序后,显示的效果如图6-7所示。图6-7 记录网页访问量的计数器图在这里需要说明的是,如果将以上程序做实际应用程序的计数器时,还应在结束Application对象运行时,将计数器变量保存到文件中。否则当程序结束后,变量被释放,计数器中留存的数据会丢失。【例】实现图形化计数器程序Counter2.asp的代码如下:%Function Digital ( counter ) Dim i, MyStr, sCounter sCounter = CStr(counter) 将counter转换为字符型,以便处理 在前面补0,假定计数器长为8位 00000123 For i = 1 To 8 - Len(sCounter) MyStr = MyStr & Next 依次读取counter中的每位数字,并转换为相应的图片 For i = 1 To Len(sCounter) MyStr = MyStr & Next 将输出的图片字符串返回 Digital = MyStr End Function Application.Lock Application(Counter) = Application(Counter) + 1 Application.UnLock%计数器演示版这是一个网站计数器的演示程序您是本站第 位访客,欢迎光临2. 创建和读取组件对象 可以在 Application 对象中定义一个全局的组件对象,不过不同的是,在定义对象的时候,我们需要使用 Set 语句,才能对创建的对象进行引用,如下所示: 在这一句脚本中,我们创建了一个 Ad Rotator 组件对象,执行之后,在 Application对象中就产生了一个组件实例。在以后访问的其他页面中,我们就可以直接使用 MyAd对象的属性和方法,在这里设置其边界宽度为 0: 3. 创建和读取数组变量 Application 对象可以创建和存储数组变量,但和传统编程语言不同的是,在Application 对象中,可以通过下标对数组变量的元素进行读取操作,但不能通过下标对数组元素进行修改操作。例如: 在这一句脚本执行的时候,尽管不会向用户返回错误信息,但实际上这一句脚本并不会产生执行结果,也就是说,数组 Message 中的元素并没有发生任何变化。 而下面显示 Message 数组中的第一个元素的脚本则是正确的: 如果需要对 Application 对象中数组的元素进行修改操作的时候, 需要先读取整个数组,并将数组作为一个整体复制给本地的副本,然后再对本地的副本中的单个元素进行相应的修改操作,最后再将修改之后的本地副本赋值到 Application 对象中。 例如,假设在 Application 对象中已经存在一个 AppArray 数组,若我们需要将AppArray 数组中的第一个元素赋值为字符串“The first element”,则我们可以编写如下所示的脚本: 在这一段脚本执行之后,Application 对象中的 AppArray 的第一个元素的值就将改变为字符串“The first element”。注意:一旦在页面中创建了应用程序变量,则应用程序变量将会一直保存在内存中, 直到服务器关闭或者整个应用程序被卸载为止。这些变量不会因为某个用户或者所有用户离开而自动消失。也就是说,在Application对象中定义的变量将会长期占用内存,对服务器的性能造成一定的影响,所以需要小心使用,不要随意创建。6.5.4 Application对象的事件Application对象有两个事件,如表6-14所示。表6-14 Application对象事件表事件名功能简述Application_OnEnd此Application“结束后”,就调用该程序Application_Onstart此Application“开始前”,就调用该程序Application_Onstart事件和Application_OnEnd事件的处理程序被放在文件Global.asa中。它的用法有:SUB APPLICATION_ONEND相应的处理程序SUB ENDSUBAPPLICATION_ONSTART相应的处理程序SUB ENDASA文件是一个非常重要的文件。在这个文件中,可以指定事件脚本,声明变量和对象。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论