首页 理论教育 ASP动态网页设计-global.asa

ASP动态网页设计-global.asa

时间:2023-11-05 理论教育 版权反馈
【摘要】:另外,在Global.asa文件中还存放有〈OBJECT〉标记声明的对象。Global文件的名称必须是Global.asa且必须存放在应用程序的根目录中,并且每个应用程序只能有一个Global.asa文件。可以用任何支持脚本的语言编写Global.asa文件中包含的脚本。在Global.asa文件中声明的过程只能从一个或多个与Application OnStart、Application_OnEnd、Session_OnStart和Session OnEnd事件相关的脚本中调用。

ASP动态网页设计-global.asa

1.Global.asa文件简介

Global.asa文件是ASP应用程序中使用到的一个特殊文件,它是一个纯文本文件。Global.asa文件中存放着ASP应用程序运行期间所需的Application对象和Session对象的事件,即Application_OnStart事件、Application_OnEnd事件、Session_OnStart事件和Session_OnEnd事件。另外,在Global.asa文件中还存放有〈OBJECT〉标记声明的对象。

Global文件是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户运行的,而是用来存储事件信息和由应用程序全局使用的对象。

Global文件的名称必须是Global.asa且必须存放在应用程序的根目录中,并且每个应用程序只能有一个Global.asa文件。

可以用任何支持脚本的语言编写Global.asa文件中包含的脚本。如果多个事件使用同一种脚本语言,就可以将它们组织在一组〈SCRIPT〉标记中。

在Global.asa文件中,如果包含的脚本没有使用〈SCRIPT〉标记封装,或定义的对象没有指定作用域为会话或应用程序,则服务器将返回错误

在Global.asa文件中声明的过程只能从一个或多个与Application OnStart、Application_OnEnd、Session_OnStart和Session OnEnd事件相关的脚本中调用。在基于ASP的应用程序的ASP页中,它们是不可用的。如果要在应用程序之间共享过程,可在单独的文件中声明这些过程,然后使用服务器端包容(SSI)语句将该文件包含在调用该过程的ASP程序中。通常,包含文件的扩展名应为.inc。

2. Global.asa文件的结构

下面给出Global.asa文件的基本结构。

〈OBJECT RunAt=Server Scope=范围ID=名称ProgID=类名〉⋯〈/OBJECT〉

〈SCRIPT LANGUAGE=″VBScript″RunAt=″Server″〉

Sub Application_OnStart

End Sub

Sub Session OnStart

End Sub

Sub Session OnEnd

End Sub

Sub Application OnEnd

End Sub

〈/SCRIPT〉

说明:

①〈OBJECT〉⋯〈/OBJECT〉标记用来声明对象,其中Run At=Server是必须的,且其值只能是Server,它表明这个Object只能在服务器上执行;“范围”表明本对象的使用用户,当Scope=Session时,表明本对象只给此次登录的用户使用,若Scope=Application,则可以让所有联机用户使用;“名称”是为对象定义的名称;“类名”是该对象的类名称。

②〈SCRIPT LANGUAGE=″VBScript″RunAt=″Server″〉指明所使用的语言为VBScript,程序在服务器端处理。

③Sub Application_OnStart⋯End Sub指明应用程序开始时所要执行的代码。

④Sub Session OnStart⋯End Sub指明一个Session开始时所要执行的代码。

⑤5Sub Session_OnEnd⋯End Sub指明一个Session结束时所要执行的代码。

⑥Sub Application_OnEnd⋯End Sub指明一个应用程序结束时所要执行的代码。

【例4.16】编写一ASP文件,在该页面上显示目前在线人数,运行结果如图4-18所示。

图4-18 显示目前在线人数(www.xing528.com)

Global.asa文件的代码如下:

〈SCRIPT LANGUAGE=″VBScript″RunAt=″Server″〉

Sub Application_OnStart

Application (″OnlineNum″)=0

End Sub

Sub Session OnStart

Application.Lock

Application (″OnlineNum″)=Application (″OnlineNum″)+1

Application.Unlock

End Sub

Sub Session OnEnd

Application.Lock

Application (″OnlineNum″)=Application (″OnlineNum″)-1

Application.Unlock

End Sub

〈/SCRIPT〉

文件命名为4-16.asp的代码如下:

〈%@LANGUAGE=″VBScript″ %〉

〈HTML〉

〈HEAD〉

〈!-- 每隔20秒刷新一次页面内容-- 〉

〈META http-equiv=″refresh″content=″20;URL=4-16.asp″〉

〈TITLE〉显示目前在线人数〈/TITLE〉

〈/HEAD〉

〈BODY〉

〈P〉目前在线〈FONT color=″red″〉〈%=Application (″Online Num″)%〉〈/FONT〉人。

〈/BODY〉

〈/HTML〉

Application对象与Session对象的关系类似于高级语言中全局变量局部变量的关系。

Application对象是服务器硬盘上的一组应用程序,也就是虚拟目录及其子目录下的一组主页及ASP文件。Application对象的所有数据可以在整个应用程序内部共享,并且对所有用户都是可见的;在一个Application中创建的变量或对象可以为整个Application所用;Application对象包括任何类型,甚至可以是队列。

Session对象存储特定用户的信息。不同用户的Session不同,用户之间不能共享Session,这与Application不同。当用户浏览Web站点时,使用Session可以为每一个用户保存指定信息。任何存储在用户Session中的信息可以在用户调用下一个页面时取得。这就像是C语言里的局部变量和函数之间的关系一样,一个Session的值对于一个用户是相同的,对于不同的用户是不同的。使用Session可以在ASP文件之间传递数值、字符串、数组和对象。当用户在应用程序的页间跳转时,存储在Session对象中的变量不会清除。

Session对象在很多方面与Application对象有着相似性及可比性。虽然很相似,但是在本质上有着很大的差别。比如对于同一个页面,不同的访问者可以创建不同的Session,但是Application的值是相同的,只被创建一次。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈