




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP编程入门进阶(十):Global.asa文件 我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa 文件中声明的。那究竟Global.asa是什么样的一个文件?它的作用有何?又该如何运用呢?且听我慢慢道来。首先.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个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的标准文件格式如下:Sub Application_OnStartApplication_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 一、Session_onStart先看一个控制用户进入页面的代码:1,Global.asa(放在被调试的虚拟目录的根目录下面)Sub Session_OnStart 只要是用户第一次登录本站,则会跳转到首页response.redirect(htp://)End Sub 然后调试当前虚拟目录下的任何文件,你会发现所有页面都跳转向htp://通过此“强制进入某页”的例子,可以想象当首页需要被关注的时候是非常有必要的。下面就以一个“在线人数”的例子来继续观察Session_OnStart和Session_OnEnd事件二、Session_onEnd2,Global.asa(放在被调试的虚拟目录的根目录下面)Sub Application_onStart 初始值为0Application(OnLine) = 0 End Sub Sub Session_onStart 一个用户访问进行记数加1Application.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 3,online.asp当前共有在线退出 你发现在该页中只有一个Application(OnLine),而且还是被显示引用的。那么其值来自何方?这正是Global.asa文件的关键所在。你可以在本机依次打开个窗口,进行进行关闭窗口或退出两种方法的调试。三、继续细化一下上面的程序你会发现:当进行“退出”连接后关闭窗口和直接关闭窗口效果是不一样的。因为Session存在时间的缘故,当直接进行关闭窗口,并不能触发Session_OnEnd事件,所以该如何实现这个几乎不可能的想法呢?大家都知道,当网页进行关闭的时候可以连带一个onunload事件,那么该onunload只要能执行Session的注销功能不就我们需要的吗?废话少说,将online.asp进行修改3,online.asp当前共有在线退出 注意,online.asp进行onunload的时候会打开exit.asp,那只要在exit.asp中再设置session.Abandon()不就OK了。4,exit.aspself.close() 当然,加了段Script脚本,目的是进行Session的注销以后立即进行关闭本身。那现在基本一个在线统计的Web应用就可以了。四、深入研究Global.asa从上面的调试中,举一反三的你,一定会提出一个问题:如何控制注册用户在线人数?那下面几个文件一个一个看:5,Global.asa(放在被调试的虚拟目录的根目录下面)Sub Application_OnStartapplication(online)=0End SubSub Session_OnStartEnd SubSub Session_OnEndif session.contents(pass) then 判断是否为登录用户的Session_OnEndapplication.lockapplication(online)=application(online)-1application.unlockend ifEnd SubSub Application_OnEndEnd Sub 注意本Global.asa中的Session_OnStart块不做任何事件。因为一旦有用户访问服务器而不管用户是否登录,都会产生OnStart事件,而现在需要的只是登录用户的在线,所以不能在OnStart事件里使Applicaiton(online)加1。又因为不管是否是登录用户的会话结束都会产生OnEnd事件(假如有访客访问了服务器但并不登录,他的会话结束后也会产生OnEnd事件),所以在Session_OnEnd事件里用了句if语句来判断是否为已登录用户的OnEnd事件,如果是才将在线人数减1。并且值得注意的是:session.contents(pass)的使用,因为在OnEnd事件里禁止使用Session对象,但是可以用Session对象的集合来调用session变量。也就是说不能直接写session(pass),而是需要写session.contents(pass)。6,login.asp%if request.querystring(logout)=true thensession.Abandon()end ifsubmitname=request.form(submit)if submitname=submit thenname=request.form(name)pwd=request.form(pwd)if name=cnbruce and pwd=cnrose thensession(name)=namesession(pass)=trueelseresponse.write Error Name Or Pwd.Backresponse.endend ifapplication.lockapplication(online)=application(online)+1application.unlock%当前注册会员人。退出 只是简单地检测用名是cnbruce,密码是cnrose的时候,生成一个session(pass)=true,就是放在Global.asa中判断的。五,继续发挥想象想想,再想想。仅仅统计有多少人在线是不够的,还要判断用户的在线状态。可以想象办法基本,当用户登录的时候,在login.asp里将online
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度浙江省护师类之主管护师综合练习试卷B卷附答案
- 2024年度浙江省护师类之主管护师全真模拟考试试卷B卷含答案
- 2024年度浙江省二级造价工程师之安装工程建设工程计量与计价实务题库练习试卷B卷附答案
- 2024年度浙江省二级造价工程师之土建建设工程计量与计价实务能力提升试卷B卷附答案
- 重症肺炎护理个案病例分析
- 厂级安全教育培训
- 幼儿园保育员开学培训
- 农合规文化教育
- 专题:完形填空 七年级英语下册期末复习考点培优专项鲁教版(五四学制)(含答案解析)
- 湖南药厂面试题及答案
- 2023-2024学年四川省南充市高一下学期7月期末物理试题(解析版)
- 2024年全国财会知识竞赛考试题库(浓缩500题)
- 中学体育七年级《篮球基本技巧》说课课件
- 实战-数字化转型工作手册 两份资料
- 2024年青海省中考生物地理合卷试题(含答案解析)
- 福建省旋挖成孔灌注桩技术规程
- 2023-2024学年译林版八年级英语下册期末易错120题(江苏专用)(含答案解析)
- G -B- 17378.7-2007 海洋监测规范 第7部分 近海污染生态调查和生物监测(正式版)
- (高清版)JTST 325-2024 水下深层水泥搅拌桩法施工质量控制与检验标准
- 茂名高州市村(社区)后备干部招聘笔试真题2023
- 西南科技大学-2019级-下-工学类-电路分析A2-毕业生补考-试卷
评论
0/150
提交评论