ASP基础入门第九篇(Global.asa文件的使用)
下面我来向大家介绍Global.asa文件的使用方法。
什么是Global.asa文件?它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是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。
下面是一个很标准的Global.asa文件:
<SCRIPTLANGUAGE="VBScript"RUNAT="Server"> 'Session_OnStart当客户首次运行ASP应用程序中的任何一个页面时运行 'Session_OnEnd当一个客户的会话超时或退出应用程序时运行 'Application_OnStart当任何客户首次访问该应用程序的首页时运行 'Application_OnEnd当该站点的WEB服务器关闭时运行 </SCRIPT> <SCRIPTLANGUAGE="VBScript"RUNAT="Server"> SubApplication_OnStart VisitorCountFilename=Server.MapPath("/ex2")+"\VisitCount.txt" SetFileObject=Server.CreateObject("Scripting.FileSystemObject") SetOut=FileObject.OpenTextFile(VisitorCountFilename,1,FALSE,FALSE) Application("visitors")=Out.ReadLine Application("VisitorCountFilename")=VisitorCountFilename EndSub '========================================================= SUBApplication_OnEnd SetFileOutObject=Server.CreateObject("Scripting.FileSystemObject") SetOut=FileOutObject.CreateTextFile(Application("VisitorCountFilename"),TRUE,FALSE) Out.WriteLine(application("visitors")) EndSub '=========================================================SubSession_OnStart Session.Timeout=5 Application("visitors")=Application("visitors")+1 Session("ID")=Session.SessionID EndSub </SCRIPT>
在这个Global.asa程序中,涉及到了ASP的FileAccess组件,它可以提供用于访问文件系统的方法、属性和集合。这将在以后ASP的组件中进行展开讨论。在这里,它起到了在服务器上创建新文件并对文件进行写操作的作用。这其实是一个ASP页面访问记数器应用程序的Global文件,首先当客户首次访问该应用程序的首页时,过程Application_OnStart定义了在服务器上指定的虚拟目录下新建一个VisitCount.txt的文本文件,并将文件的路径和内容保存在应用程序级的变量中。而当任何一个客户访问ASP应用程序中的任何一个页面时,过程Session_OnStart定义将应用程序级的变量visitors的值自动加一。这样,每当有客户访问页面时,变量visitors都将自动加一,以起到统计点击率的作用。由于变量visitors的值是存储在系统内存之中,所以如果服务器关闭或重新启动,存储在变量中的数据将自动丢失,所以通过定义过程Application_OnEnd,在服务器关闭或重启之前将数据写入事先建立的文本文件之中,这样就能确保当服务器再次启动时,Application_OnStart过程可以从VisitCount.txt文件中读取以前的统计数。
以上就是本文的全部内容,希望对大家的学习有所帮助。