Global.asa 文件
Global.asa 文件是一个可选的文件,它可包括可被 ASP 应用程序中每一个页面接见的对象、变量以及要领的声明。一切正当的浏览器剧本都能在 Global.asa 中运用。
Global.asa 文件可包括以下内容:
Application 事宜
Session 事宜
<object> 声明
TypeLibrary 声明
#include 指令
解释:Global.asa 文件须存放于 ASP 应用程序的根目录中,且每一个应用程序只能有一个 Global.asa 文件。
Global.asa 中的事宜
在 Global.asa 中,我们能够示知 application 和 session 对象在启动和完毕时做什么事变。完成这项使命的代码被安排在事宜操纵器中。Global.asa 文件能包括四种范例的事宜:
Application_OnStart - 此事宜会在首位用户从 ASP 应用程序挪用第一个页面时发作。此事宜会在 web 效劳重视起或许 Global.asa 文件被编辑以后发作。"Session_OnStart" 事宜会在此事宜发作以后马上发作。
Session_OnStart - 此事宜会在每当新用户要求他或她的在 ASP 应用程序中的首个页面时发作。
Session_OnEnd - 此事宜会在每当用户完毕 session 时发作。在划定的时候(默许的事宜为 20 分钟)内如果没有页面被要求,session 就会完毕。
Application_OnEnd - 此事宜会在末了一名用户完毕其 session 以后发作。典范的状况是,此事宜会在 Web 效劳器住手时发作。此子程序用于在应用程序住手后消灭设置,比方删除纪录或许向文本文件写信息。
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>
解释:因为没法运用 ASP 的剧本分隔符 (<% 和 %>) 在 Global.asa 文件中插进去剧本,我们需运用 HTML 的 <script> 元素。
<object> 声明
可经由过程运用 <object> 标签在 Global.asa 文件中建立带有 session 或许 application 作用域的对象。
解释:<object> 标签应位于 <script> 标签以外。
语法:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
参数 形貌
scope 设置对象的作用域(作用局限)(Session 或许 Application)。
id 为对象指定一个唯一的 id。
ProgID 与 ClassID 关联的 id。ProgID 的花样是:[Vendor.]Component[.Version]。ProgID 或 ClassID 必须被指定。
ClassID 为 COM 类对象指定唯一的 id。ProgID 或 ClassID 必须被指定。
实例
第一个实例建立了一个名为 "MyAd" 且运用 ProgID 参数的 session 作用域对象:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
第二个实例建立了名为 "MyConnection" 且运用 ClassID 参数的
<object runat="server" scope="application" id="MyConnection"classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
在此 Global.asa 文件中声明的这些对象可被应用程序中的任何剧本运用。
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
您能够从 ASP 应用程序中的恣意页面援用此 "MyAd" 对象:
某个 .ASP 文件:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary 声明
TypeLibrary (范例库)是一个容器,个中装有对应于 COM 对象的 DLL 文件。经由过程在 Global.asa 中包括对 TypeLibrary 的挪用,能够接见 COM 对象的常量,同时 ASP 代码也能更好地报告毛病。如果您的站点的应用程序依赖于已在范例库中声明过数据范例的 COM 对象,您能够在 Global.asa 中对范例库举行声明。
语法:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
参数 形貌
file 划定指向范例库的绝对路径。参数 file 或许 uuid,两者缺一不可。
uuid 划定了针对范例库的唯一的标识符。参数 file 或许 uuid,两者缺一不可。
version 可选。用于挑选版本。如果没有找到指定的版本,将运用最接近的版本。
lcid 可选。用于范例库的区域标识符。
毛病值
效劳器会返回以下的毛病音讯之一:
毛病 代码 形貌
ASP 0222 Invalid type library specification
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped
解释:METADATA 标签可位于 Global.asa 文件中的任何位置(在 <script> 标签的表里都可)。不过,我们照样引荐将 METADATA 标签安排于 Global.asa 文件的顶部。
限制
关于能够在 Global.asa 文件中援用的内容的限制:
你没法显现 Global.asa 文件中的文本。此文件没法显现信息。
你只能在 Application_OnStart 和 Application_OnEnd 子例程中运用 Server 和 Application 对象。在 Session_OnEnd 子例程中,你能够运用 Server、Application 和 Session 对象。在 Session_OnStart 子例程中,你可运用任何内建的对象。
怎样运用子例程
Global.asa 常用于对变量举行初始化。
下面的例子展现怎样检测接见者初次抵达站点的确实时候。时候存储在名为 "started" 的 Session 对象中,而且 "started" 变量的值可被应用程序中的任何 ASP 页面接见:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa 也可用于掌握页面接见。
下面的例子展现怎样把每位新的接见者重定向到另一个页面,在这个例子中会定向到 "newpage.asp" 这个页面:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
我们还能够在 Global.asa 中包括函数。
鄙人面的例子中,当 Web 效劳器启动时,Application_OnStart 子例程也会启动。随后,Application_OnStart 子例程会挪用另一个名为 "getcustomers" 的子例程。"getcustomers" 子例程会打开一个数据库,然后从 "customers" 表中取回一个纪录集。此纪录聚会会议赋值给一个数组,在不查询数据库的状况下,任何 ASP 页面都能够接见这个数组:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Global.asa 实例
在这个例子中,我们要建立一个可计算当前访客的 Global.asa 文件。
Application_OnStart 设置当效劳器启动时,Application 变量 "visitors" 的值为 0。
每当有新用户接见时,Session_OnStart 子例程就会给变量 "visitors" 加 1。
每当 Session_OnEnd 子例程被触发时,此子例程就会从变量 "visitors" 减 1。
Global.asa 文件:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStartApplication.LockApplication("visitors")=Application("visitors")+1Application.UnLockEnd SubSub Session_OnEndApplication.LockApplication("visitors")=Application("visitors")-1Application.UnLockEnd Sub</script> 此 ASP 文件会显现当
前用户的数量:
<html> <head> </head> <body> <p>There are <%response.write(Application("visitors"))%> online now!</p> </body> </html>
【相干引荐】
ASP免费视频教程
以上就是关于ASP中Global.asa文件的细致引见的细致内容,更多请关注ki4网别的相干文章!