我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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的标准文件格式如下:

<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>

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

三、继续细化一下

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

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

<%  if request.querystring("logout")="true" then  session.Abandon()  response.end  end if  %>  <body onunload=javascript:window.open("exit.asp")>  当前共有<%=Application("OnLine")%>在线  <a href="online.asp?logout=true">退出</a>

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

exit.asp

<%session.Abandon()%>  <script>  self.close()  </script>

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

四、深入研究Global.asa

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

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

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">  Sub Application_OnStart  application("online")=0  End 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 Sub Application_OnEnd  End Sub </SCRIPT>

注意本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.<a href='login.asp'>Back</a>" response.end  end if  application.lock  application("online")=application("online")+1  application.unlock  %>

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

<a href="login.asp?logout=true">退出</a>  <%else%>  <form action="login.asp" method="post">  <input type="text" name="name"><br>  <input type="password" name="pwd"><br>  <input type="submit" name="submit" value="submit">  <%end if%>

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

五,继续发挥想象

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

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

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

Python有哪些基础使用技巧

这篇文章主要讲解了“Python有哪些基础使用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些基础使用技巧”吧!1、>>> some_list = [1, 2, 3, 4
2023-06-16

Python有哪些基础的使用技巧

本篇内容介绍了“Python有哪些基础的使用技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. read_csv每个人都知道这个命令。但
2023-06-16

Golang的基础知识和高级技巧有哪些

这篇“Golang的基础知识和高级技巧有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang的基础知识和高级技巧有
2023-07-05

Linux系统中处理文件小技巧有哪些

这篇文章主要为大家展示了“Linux系统中处理文件小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中处理文件小技巧有哪些”这篇文章吧。查找文件当你查找文件时,find 可
2023-06-27

文件预览PDF.js使用技巧有哪些

这篇文章主要讲解了“文件预览PDF.js使用技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“文件预览PDF.js使用技巧有哪些”吧!Pdf.js有两种使用方式在这次的项目中用到了pd
2023-07-05

在Linux文件系统中导航的技巧有哪些

这篇文章给大家分享的是有关在Linux文件系统中导航的技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。cd 命令可能是任何 Linux 用户学习的前 10 个命令之一,但这并不是在 Linux 文件系统中
2023-06-16

Python中最常见的文件操作技巧有哪些

本篇内容介绍了“Python中最常见的文件操作技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!打开&关闭文件读取或写入文件前,首先要
2023-06-16

URL目录文件名优化的技巧有哪些

本文小编为大家详细介绍“URL目录文件名优化的技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“URL目录文件名优化的技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  1.想让自己的网站获得更好
2023-06-12

批处理文件.bat的使用技巧有哪些

这篇文章主要为大家展示了“批处理文件.bat的使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理文件.bat的使用技巧有哪些”这篇文章吧。从中可以了解系统服务的添加与删除,以及文
2023-06-08

在Linux文件系统中导航的使用技巧有哪些

这篇文章主要介绍在Linux文件系统中导航的使用技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!添加到 $PATH确保你不必花费大量时间在 Linux 系统上查找命令的最简单、最有用的方法之一就是在 $PAT
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录