千家信息网

ASP基础中Global.asa文件技巧有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章跟大家分析一下"ASP基础中Global.asa文件技巧有哪些"。内容详细易懂,对"ASP基础中Global.asa文件技巧有哪些"感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后
千家信息网最后更新 2026年11月03日ASP基础中Global.asa文件技巧有哪些

这篇文章跟大家分析一下"ASP基础中Global.asa文件技巧有哪些"。内容详细易懂,对"ASP基础中Global.asa文件技巧有哪些"感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习"ASP基础中Global.asa文件技巧有哪些"的知识吧。

Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。我们都知道,.asa是文件后缀名。是Active Server Application的首字母缩写

它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。

关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。

Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:

  • 当Application_OnStart或Application_OnEnd事件被触发。

  • 当Session_OnStart或Session_OnEnd事件被触发。

  • 当引用一个在Global.asa文件里被实例化的对象(Object)。

Global.asa的标准文件格式如下:

一、Session_onStart

先看一个控制用户进入页面的代码:

1,Global.asa(放在被调试的虚拟目录的根目录下面)

然后调试当前虚拟目录下的任何文件,你会发现所有页面都跳转向http://www.webjx.com/<
通过此"强制进入某页"的例子,可以想象当首页需要被关注的时候是非常有必要的。

下面就以一个"在线人数"的例子来继续观察Session_OnStart和Session_OnEnd事件

二、Session_onEnd

2,Global.asa(放在被调试的虚拟目录的根目录下面)

3,online.asp

<%  if request.querystring("logout")="true" then  session.Abandon()  response.end  end if  %>  当前共有<%=Application("OnLine")%>在线  退出

你发现在该页中只有一个Application("OnLine"),而且还是被显示引用的。那么其值来自何方?这正是Global.asa文件的关键所在。你可以在本机依次打开个窗口,进行进行关闭窗口或退出两种方法的调试。

三、继续细化一下

上面的程序你会发现:当进行"退出"连接后关闭窗口和直接关闭窗口效果是不一样的。因为Session存在时间的缘故,当直接进行关闭窗口,并不能触发Session_OnEnd事件,所以该如何实现这个几乎不可能的想法呢?

大家都知道,当网页进行关闭的时候可以连带一个onunload事件,那么该onunload只要能执行Session的注销功能不就我们需要的吗?废话少说,将online.asp进行修改

<%  if request.querystring("logout")="true" then  session.Abandon()  response.end  end if  %>    当前共有<%=Application("OnLine")%>在线  退出

注意,online.asp进行onunload的时候会打开exit.asp,那只要在exit.asp中再设置session.Abandon()不就OK了。

exit.asp

<%session.Abandon()%>  

当然,加了段Script脚本,目的是进行Session的注销以后立即进行关闭本身。那现在基本一个在线统计的Web应用就可以了。

四、深入研究Global.asa

从上面的调试中,举一反三的你,一定会提出一个问题:如何控制注册用户在线人数?那下面几个文件一个一个看:

5,Global.asa(放在被调试的虚拟目录的根目录下面)

注意本Global.asa中的Session_OnStart块不做任何事件。

因为一旦有用户访问服务器而不管用户是否登录,都会产生OnStart事件,而现在需要的只是登录用户的在线,所以不能在OnStart事件里使Application("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" then  session.Abandon()  end if  submitname=request.form("submit")  if submitname="submit" then  name=request.form("name")  pwd=request.form("pwd")  if name="cnbruce" and pwd="cnrose" then  session("name")=name  session("pass")=true  else  response.write "Error Name Or Pwd.Back" response.end  end if  application.lock  application("online")=application("online")+1  application.unlock  %>

当前注册会员<%=application("online")%>人。

退出  <%else%>  


<%end if%>

只是简单地检测用名是cnbruce,密码是cnrose的时候,生成一个session("pass")=true,就是放在Global.asa中判断的。

五,继续发挥想象

想想,再想想。仅仅统计有多少人在线是不够的,还要判断用户的在线状态。

可以想象办法基本,当用户登录的时候,在login.asp里将online设为1(如果有数据库则上传),但用户离线时将online设为0,要完善它,就要修改一下Session_OnEnd事件,在该事件里将online设为0(同样将为0的值上传)……

当然,Global.asa远远不止这些。不过我们现在先不着急全部掌握,当我们接触到数据库的时候再返回过来看,继续研究该文件,相信到那时一定又会感悟到很多。所以,还是先把上面的这些吃透吧。

关于ASP基础中Global.asa文件技巧有哪些就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下网站!

文件 事件 用户 程序 对象 在线 应用 应用程序 登录 时候 运行 基础 技巧 根目录 目录 页面 人数 内容 客户 服务器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 科技赋能下的互联网金融 互联网科技与金融科技 互联网女皇 腾讯科技 有木互联网科技 伴你行互联网科技有限公司 华脉科技工业互联网产品 济南和联互联网科技有限公司 博兴的互联网电子科技公司 互联网金融科技公司干啥的 福建科技产业互联网发展 上海宁丞科技互联网 苏州五指互联网络科技有限 青岛科技大学互联网大赛研究生 互联网5g黑科技有哪些 广西互联网科技孵化中心 领航科技大厦互联网公司 互联网科技手抄报图片 杭州科技互联网公司有哪些 宁波允成互联网科技有限公司 互联网科技公司简介 朗涯互联网科技 猫创互联网科技 千方科技属于互联网企业吗 青岛科技大学互联网大赛研究生 中国科技创新与世界互联网大会 张召忠谈中国互联网科技 富国互联网金融科技混合基金 富国互联网科技002692 宇信科技在杭州互联网排第几
0