ASP入门(十五)- Global.asa

Global.asa 文件是一个可选文件,它可包含被 ASP 应用程序中每个页面访问的对象、变量和方法的声明。所有合法的浏览器脚本都可以在 Global.asa 中使用。

Global.asa 文件只能包含 Application 事件Session 事件、<object> 声明TypeLibrary 声明#include 指令这几种内容。

Global.asa 文件必须放在 ASP 应用程序的根目录中,而且每一个应用程序只能有一个 Global.asa 文件。

Global.asa 中的事件

Global.asa 文件中应当包含 4 个 Sub 过程,并且它们的名字是固定的,这样 IIS 在处理 ASP 脚本时,就可以自动执行这些过程了,一个标准的 Global.asa 的代码结构如下:

<script language="vbscript" runat="server">
Sub Application_OnStart()
‘some code
End Sub

Sub Application_OnEnd()
‘some code
End Sub

Sub Session_OnStart()
‘some code
End Sub

Sub Session_OnEnd()
‘some code
End Sub
</script>

首先,这里并不是以 <% %> 定界符来包含代码的,而是以 <script> 标签来包含相应的代码,否认会出现错误。

Application_OnStart 此事件会在整个网站第一次开启时触发,此事件会法正在 Web 服务器重启或者 Global.asa 文件被编辑之后。Session_OnStart 事件会在此事件发生之后立即发生。

Session_OnStart 事件会在每当新用户请求网站的ASP程序的第一个页面时发生。也就是IIS为用户分配 SessionID 时触发。

Session_OnEnd 事件会在每当用户结束 Session 时发生。这与 Session.Timeout 的设定有关系,在规定的时间(默认时间为20分钟)内如果用户没有请求任何页面,用户 Session 就会结束,此时 Session_OnEnd 事件也会被触发。

Application_OnEnd 事件会在最后一个用户结束其 Session 之后发生。典型的情况就是,Web 服务器关机或重启,或者 IIS 管理器中对站点进行关闭操作。

限定

Application_OnStart、Application_OnEnd、Session_OnStart、Session_OnEnd 四个事件的子例程中可使用的对象,详见下表

  Server 对象 Application 对象 Session 对象 其他任何内建对象
Application_OnStart    
Application_OnEnd    
Session_OnStart
Session_OnEnd  

利用 Global.asa 制作在线人数计数器

我们利用 Global.asa 文件中 Session 事件特性来实现一个在线人数的计数器,在每个用户第一次访问站点时,我们会将 Application 中保存的当前人数增加,当用户离开此站点并且 Session 超时后,我们会在 Application 中保存的当前人数减少。

下面是 Global.asa 文件中的源代码:

<script language="vbscript" runat="server">
Sub Application_OnStart()
  Application("visitors") = 0
End Sub

Sub Application_OnEnd()
End Sub

Sub Session_OnStart()
  Application.Lock()
  Application("visitors") = Application("visitors") + 1
  Application.Unlock()
End Sub

Sub Session_OnEnd()
  Application.Lock()
  Application("visitors") = Application("visitors") - 1
  Application.Unlock()
End Sub
</script>

我们这里主要用了 Session_OnStart 、 Session_OnEnd 和 Application_OnStart 三个事件。

  • Application_OnStart 中的代码使得网站开启时初始化 Application 中的 visitor 为 0。
  • Session_OnStart 中的代码使得使得 Application 中的 visitor 加1。
  • Session_OnEnd 中的代码使得 Application 中的 visitor 减1。

将此 Global.asa 放置到站点的根目录下,然后你可以在你的 ASP 文件中访问到 Application  的 Visitor 的值了,如下代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Dim numVisitors
numVisitors = Application.Contents("visitors")
Session.Timeout = 1
%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Global.asa 统计在线人数</title>
</head>
<body>
<h3>当前在线人数:<%=numVisitors%></h3>
</body>
</html>

示例代码下载

Global_Visitors.RAR

时间: 2024-10-09 11:39:17

ASP入门(十五)- Global.asa的相关文章

[WebGL入门]十五,为多边形涂抹颜色(顶点颜色的指定)

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 本次的demo的运行结果 增加顶点属性的个数 上次,终于绘制了一个三角形,但是只绘制了一个纯白色的多边形.这次,给多边形的顶点中添加颜色属性,基本上做的事情和上一篇文章一样,只是稍微增加点步骤而已.首先,就像以前多次重复的那样,顶点可以包含很多种情报(参考:顶点缓存和基础),而且每一个情报叫做

ASP入门(五)- VBScript过程和函数

VBScript过程 被封装在Sub和End Sub语句之中的一系列语句 不具有返回值 可带参数 我们的SubFunction.asp中展示了Sub的用法,代码如下: <% Sub mySub(Str1, Str2) Response.Write(Str1 & Str2) End Sub mySub "Hello,", "World<br>" Call mySub("Hello,", "World<br&

ASP入门(五)-Response对象

Response对象可以从服务器向用户发送输出的结果. Response几种常用方法 方法 描述 BinaryWrite 向浏览器输出二进制的内容 Clear 清除已经缓冲的HTML输出 End 停止处理当前的页面,并返回当前的结果 Flush 立即发送已缓冲的HTML输出 Redirect 把用户重定向到另一个URL Write 向输出写指定的字符串 Write方法 Write方法前面已经接触过了,用于向浏览器输出一个字符串,例如下面的代码: <%@LANGUAGE="VBSCRIPT&

Android入门(十五)通知

原文链接:http://www.orlion.ga/663/ 1.通知的基本用法 创建通知的步骤,首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到.getSystemService()方法接收到一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可,因此获取NotificationManager的实例就可以写成: NotificationManag

如何学习ASP Global.asa 文件?

ASP Global.asa 文件 Previous Page Next Page Global.asa 文件是一个可选的文件,它可包含可被 ASP 应用 程序中每个页面访问的对象.变量以及方法的声明. Global.asa 文件 Global.asa 文件是一个可选的文件,它可包含可被 ASP 应用程序中每个页面访问的对象. 变量以及方法的声明.所有合法的浏览器脚本都能在 Global.asa 中使用. Global.asa 文件可包含下列内容: Application 事件 Session

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下. (1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)F

ASP教程:Global.asa文件的使用及Chat程序

在上一篇中作者给大家详细介绍了两个非常实用的 ASP 内建对象 Application 和 Session 的使用方法.由于这两者的 OnStart.OnEnd 事件的脚本都必须在 Global.asa 文件中声明 , 因此,本篇将给大家详细介绍 Global.asa 文件的使用方法.为使大家熟练掌握至今所学过的知识,本篇还将举出一个 ASP 的 Chat 程序,供各位参考. 最近很多朋友来信问我,为什么前两期的范例程序运行时有这样那样的错.首先,我要向大家声明,这些程序都是我自己写的,在出“厂

(转)Inno Setup入门(十五)——Inno Setup类参考(1)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250955 nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习. 创建自定义向导页 自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...Page和Crea

MyBatis基础入门《十五》ResultMap子元素(collection)

MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association )> >>collection >> 复杂类型集合,一对多 >> 内部嵌套 > 映射一个嵌套结果集到一个列表 >> 属性 > property : 映射数据库列的实体对象的属性 > ofType : 完整java类名或别名(集合所包括的