三、Global.asa ASP的Application和Session对象体现了其他ASP内置对象所没有的特征--事件。每一个访客访问服务器时都会触发一个OnStart事件(第一个访客会同时触发Application和Session的OnStart事件,但Application先于Session),每个访客的会话结束时都会触发一个OnEnd事件(最后一个访客会话结束时会同时触发Application和Session的OnEnd事件,但Session先于Application)。 OnStart和OnEnd这两个事件一般应用在虚拟社区中统计在线人数、修改用户的在线离线状态等。要具体定义这两个事件,需要将代码写在Global.asa文件,并将该文件放在站点的根目录下(缺省是Inetpubwwwroot)。另外,Application和Session对象规定了在OnEnd事件里除了Application对象外其他ASP内置对象(Response、Request、Server、Session...)一概不能使用。以下举一个虚拟社区统计在线人数的例子来说明如何使用这两个事件。 文件说明: global.asa 位于d:Inetpubwwwroot目录下 default.asp 位于d:Inetpubwwwroot目录下,虚拟社区登录页面 login.asp 位于d:Inetpubwwwroot目录下,用于检测用户输入的用户名及密码 index.asp 位于d:Inetpubwwwroot目录下,虚拟社区首页 bbs.mdb 位于d:Inetpubwwwroot目录下,存储用户信息的数据库 数据库(ACCESS)结构: ===bbs表=== id 用户ID,长整型 name 用户名,文本型 code 密码,文本型 online 在线状态,是/否 ===global.asa=== <script LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart application("online")=0 End Sub sub Application_OnEnd nd Sub Sub Session_OnStart End Sub Sub Session_OnEnd if session.contents("pass") then '判断是否为登录用户的Session_OnEnd application.lock application("online")=application("online")-1 application.unlock end if End Sub </script> ============== ===login.asp=== ......'密码验证,连接数据库,检测用户输入的用户名及密码是否正确
|