最新改版
Global.asa 文件
上一篇 /
下一篇 2007-03-30 23:31:14
/ 个人分类:网络学习
什么是 Global.asa 文件?它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是 Global.asa 且必须存放在应用程序的根目录中。每个应用程序只能有一个 Global.asa 文件。
Cv+XRK?c8n){7x0云南博客(Y} m kS0r+D*]{
在 Global.asa 文件中,如果包含的脚本没有用 < scrīpt> 标记封装,或定义的对象没有会话或应用程序作用域,则服务器将返回错误。我们可以用任何支持脚本的语言编写 Global.asa 文件中包含的脚本。如果多个事件使用同一种脚本语言,就可以将它们组织在一组 < scrīpt> 标记中。
A4HY_U1H0云南博客;w+w
n*y'H
在 Global.asa 文件中声明的过程只能从一个或多个与 Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相关的脚本中调用。在基于 ASP 的应用程序的 ASP 页中,它们是不可用的。如果要在应用程序之间共享过程,可在单独的文件中声明这些过程,然后使用服务器端包容 (SSI) 语句将该文件包含在调用该过程的 ASP 程序中。通常,包含文件的扩展名应为 .inc。云南博客,l-OXhit+W
K
&^1|R&@-\
@1?0 下面是一个很标准的 Global.asa 文件 : 云南博客
a1~~4i,XM0K
< scrīpt LANGUAGE="VBscrīpt" RUNAT="Server">
m*O;l4VY0'Session_OnStart 当客户首次运行 ASP 应用程序中的任何一个页面时运行
k8jo1yw y0G0'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行云南博客#R+z/m!Y b3s
'Application_OnStart 当任何客户首次访问该应用程序的首页时运行
&Z
I:nX/~T
tS-S H&c0'Application_OnEnd 当该站点的 WEB 服务器关闭时运行
s3O
~qWY!Rs M0< /scrīpt>
Hd%r&}b8Z0
;vH"@D5x6^
O0< scrīpt LANGUAGE="VBscrīpt" RUNAT="Server">云南博客 GLrS@ w0wPq
Sub Application_OnStart云南博客9Y]m_f:zo
VisitorCountFilename = Server.MapPath ("/ex2") + "\VisitCount.txt"云南博客0R'Pl C&X5e9g0oI o
Set FileObject = Server.CreateObject("scrīpting.FileSystemObject")云南博客-]v,xFLt5q&b
Set ōut= FileObject.OpenTextFile (VisitorCountFilename, 1, FALSE, FALSE)
{&C;Zn-J7b5\0Application("visitors") = Out.ReadLine
5g?"eeU(R
Jb];n0Application("VisitorCountFilename") = VisitorCountFilename云南博客i9ZNi)Sn%@j
End Sub云南博客k5~g1KjWnn
'=========================================================云南博客f!bw)K8Geu{-x
SUB Application_OnEnd
Fo/D2w0G;y0Set FileOutObject = Server.CreateObject("scrīpting.FileSystemObject")云南博客)V,r/eMr6D?D C$}
Set ōut= FileOutObject.CreateTextFile (Application("VisitorCountFilename"), TRUE,FALSE)
*O*Bf4d3\@r8OH*}P0Out.WriteLine(application("visitors"))云南博客G@vykH
End Sub云南博客DMau9H)j["[ X*Z
'=========================================================Sub Session_OnStart
q:A6Dni0Session.Timeout = 5
X.p'?c?Rt0Application("visitors") = Application("visitors") + 1云南博客 {3Z!P3ls&R
A
Session("ID")=Session.SessionID
x6Cg\R0End Sub云南博客.ZULE,WgP9[4x
< /scrīpt>云南博客3^*s}$UiT%[
+R?GY5B D-h0 在这个 Global.asa 程序中,涉及到了 ASP 的 File Access 组件,它可以提供用于访问文件系统的方法、属性和集合。这将在以后 ASP 的组件中进行展开讨论。在这里,它起到了在服务器上创建新文件并对文件进行写操作的作用。这其实是一个 ASP 页面访问记数器应用程序的 Global 文件,首先当客户首次访问该应用程序的首页时 , 过程 Application_OnStart 定义了在服务器上指定的虚拟目录下新建一个 VisitCount.txt 的文本文件,并将文件的路径和内容保存在应用程序级的变量中。而当任何一个客户访问 ASP 应用程序中的任何一个页面时,过程 Session_OnStart 定义将应用程序级的变量 visitors 的值自动加一。这样,每当有客户访问页面时,变量 visitors 都将自动加一,以起到统计点击率的作用。由于变量 visitors 的值是存储在系统内存之中,所以如果服务器关闭或重新启动,存储在变量中的数据将自动丢失,所以通过定义过程 Application_OnEnd,在服务器关闭或重启之前将数据写入事先建立的文本文件之中,这样就能确保当服务器再次启动时,Application_OnStart 过程可以从 VisitCount.txt 文件中读取以前的统计数。
首先.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以管理在ASP应用中两个非常苛刻的对象:Application、Session。
P
m&CG+?)KZ8j0云南博客c!jYd1K*r
它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内。每个应用程序只能有一个Global.asa文件。 云南博客R
sg(Cnz@[-D%l
云南博客
du"a7pIH%V#E
关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。
9o^N+M(Z0云南博客H3J_
Y8i,lf
Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用: 云南博客B6az+S#o#f
1,当Application_OnStart或Application_OnEnd事件被触发。 云南博客 `:^.N2O\f'}F$r
2,当Session_OnStart或Session_OnEnd事件被触发。 云南博客udd4f}
3,当引用一个在Global.asa文件里被实例化的对象(Object)。
7N0_"h0NNH;klv0Global.asa的标准文件格式如下: 云南博客FNJ5D__`
<scrīpt LANGUAGE="VBscrīpt" RUNAT="Server">
PsG#b%JU(k0Sub Application_OnStart
7\K,vv
YJ(oD)?0'Application_OnStart 当任何客户首次访问该应用程序的首页时运行 云南博客n~6L.HMG
P2?
End Sub 云南博客rp:I'F,^;I\T;b4}
N}[2X%D0Sub Session_OnStart
{g+j)]v!d{+z F0'Session_OnStart 当客户首次运行 ASP 应用程序中的任何一个页面时运行
~(i:\
VqG
hx+D_0End Sub 云南博客"lHfOt"TH%a#b
$@DB&vc-x0Sub Session_OnEnd
X1z9N}St!\"I0MQ(O)m0'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行 云南博客 U'[:y*`7wBH8K0t
End Sub 云南博客*~0j"[c;k3n1m*I
dyfjf:bmA0Sub Application_OnEnd 云南博客 q:ip6O _3]
'Application_OnEnd 当该站点的 WEB 服务器关闭时运行
C
j/p5y4ZRt&H0End Sub 云南博客5_)p`;Awp6O
</scrīpt>
f
C%P~&n{Zu0
+\N1@'z%X:W0
B5?2cp2Ex$mR6r~0云南博客 {K%B'|o
云南博客(j&K[eQ"sf
.x&m
B0BUz0nt0一、Session_onStart 云南博客c3b+yhvC([
先看一个控制用户进入页面的代码: 云南博客 kX8\3b P$Y"|(h`0a@
1,Global.asa(放在被调试的虚拟目录的根目录下面) 云南博客UGWm6v
h
云南博客sR{Ek(J8n5~7{f/K
云南博客4R GJ[)C-oP
<scrīpt LANGUAGE="VBscrīpt" RUNAT="Server">
bPC(Y3_2O7?lK0Sub Session_OnStart '只要是用户第一次登录本站,则会跳转到首页
WGDX7otw0response.redirect("htp://www.cnbruce.com/")
&G-`/H
LE:u\ l0End Sub
9s^^tPP'`8ZN0</scrīpt>
5K&? Le:R#Q+I0
$}W#Awk:xLtt`
@0