ASP的Global.asa使用说明

时间:2021-07-29 02:34:56

/*-------------------ASP文档参考集-----------------------*/ 
*-->作者:草履虫 
*-->时间:2007-4.28---2007-4.30(原来是自己编写的手册,现在发在这里) 
*-->联系:caolvchong@gmail.com 
*-->文档功能: 
1.复习了ASP,加深了对ASP结构的理解和ASP的体会 
2.可以用来做ASP参考,自己写的,参考起来更方便 

这是第四部分:Global.asa 

/*---------------------------关于ASP组件------------------------*/ 
  ASP组件就不叙述了,遇到重要的组件(主要是第三方的组件),如上传组件等等,再专门 
  介绍 
/*==============================END==================================*/ 

/*-----------------------Global.asa-------------------------*/ 
.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以 
管理在ASP应用中两个非常苛刻的对象:Application、Session   
Global.asa是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和 
应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由 
应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一 
个Global.asa文件 
关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。  
Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:  
  1.当Application_OnStart或Application_OnEnd事件被触发。  
  2.当Session_OnStart或Session_OnEnd事件被触发。  
  3.当引用一个在Global.asa文件里被实例化的对象(Object)。 


Global.asa的标准文件格式如下: 
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">  
Sub Application_OnStart  
'Application_OnStart 当任何客户首次访问该应用程序的首页时运行  
End Sub  

Sub Session_OnStart  
'Session_OnStart 当客户首次运行 ASP 应用程序中的任何一个页面时运行  
End Sub  

Sub Session_OnEnd  
'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行  
End Sub  

Sub Application_OnEnd  
'Application_OnEnd 当该站点的 WEB 服务器关闭时运行  
End Sub  
</SCRIPT> 

两个关于Global.asa经典的例子:  
1.强制进入首页,就是如果第一次访问网站,强制定位到首页的办法: 
  <SCRIPT LANGUAGE="VBScript" RUNAT="Server">  
    Sub Session_OnStart '只要是用户第一次登录本站,则会跳转到首页  
      response.redirect("首页地址")  
    End Sub  
  </SCRIPT> 

2.网站在线人数的统计: 
  <SCRIPT LANGUAGE="VBScript" RUNAT="Server">  
  Sub Application_OnStart  
  ' 当服务器开启时,设置用户计数器为0  
  Application("ActiveUsers") = 0  
  End Sub  

  Sub Session_OnStart  
  '设置Session对象的有效时间为20分钟(也可以更长,但是越长对服务器的 
  '资源占用越多,因为服务器不接受少于20分钟的有效时间,所以设置少于20 
  '分钟的有效时间是无效的)  
  Session.Timeout = 20  
  ' 当开始一个Session时用户计数器加1  
  Application.Lock  
  Application("ActiveUsers") = Application("ActiveUsers") + 1  
  Application.UnLock  
  End Sub  
   
  Sub Session_OnEnd  
  ' 当结束一个Session时用户计数器减1  
  Application.Lock  
  Application("ActiveUsers") = Application("ActiveUsers") - 1  
  Application.UnLock  
  End Sub  
  </SCRIPT>