Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。我们都知道,.asa是文件后缀名。是Active Server Application的首字母缩写
它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。
关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。
Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:
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>
一、Session_onStart
先看一个控制用户进入页面的代码:
1,Global.asa(放在被调试的虚拟目录的根目录下面)
- <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
- Sub Session_OnStart ''只要是用户第一次登录本站,则会跳转到首页
- response.redirect("http://www.webjx.com/")
- End Sub
- </SCRIPT>
然后调试当前虚拟目录下的任何文件,你会发现所有页面都跳转向http://www.webjx.com/<
通过此“强制进入某页”的例子,可以想象当首页需要被关注的时候是非常有必要的。
下面就以一个“在线人数”的例子来继续观察Session_OnStart和Session_OnEnd事件
二、Session_onEnd
2,Global.asa(放在被调试的虚拟目录的根目录下面)
- <SCRIPT LANGUAGE=VBScript RUNAT=Server>
- Sub Application_onStart ''初始值为0
- Application("OnLine") = 0
- End Sub
- Sub Session_onStart ''一个用户访问进行记数加1
- Application.Lock
- Application("OnLine") = Application("OnLine") + 1
- Application.Unlock
- End Sub
- Sub Session_OnEnd ''一个用户进程的结束,记数减1 (P.S.如果没有该事件程序,则执行的就是页面访问程序了。)
- Application.Lock
- Application("OnLine") = Application("OnLine") - 1
- Application.Unlock
- End Sub
- </SCRIPT>
3,online.asp
- <%
- if request.querystring("logout")="true" then
- session.Abandon()
- response.end
- end if
- %>
- 当前共有<%=Application("OnLine")%>在线
- <a href="online.asp?logout=true">退出</a>
你