关于ASP中的global.asa文件应用方面的探讨
2009-10-27王永和
王永和
我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa 文件中声明的。那究竟Global.asa是什么样的一个文件?它的作用有何?又该如何运用呢?
首先.asa是文件后缀名,它是Active Server Application的首字母缩写。Global.asa文件可以是管理在ASP应用中两个非常苛刻的对象:Application、Session。它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件必须存放在应用程序的根目录内(可以是虚拟目录的相对根下且必须安装IIS)。每个应用程序只能有一个Global.asa文件。
关于Global.asa文件最常见的错误概念是它能为一般的使用的函数和子程序用作书库。Global.asa文件仅能用于创建对象的引用和俘获启动,以及结束Application对象和Session对象。
Global.asa文件主要基于会话级事件被访问,在以下三种情况下被调用:
1.当Application_OnStart或Application_
OnEnd事件被触发。
2.当Session_OnStart或Session_OnEnd事件被触发。
3.当引用一个在Global.asa文件里被实例化的对象(Object)。
Global.asa的标准文件格式如下:
封装标记结束
因为很多书上都给了global.asa的理论,但学生学起来还是不知道它有什么用,一头雾水。所以下面的实例就是我们学校学生在《ASP实训网上购书城》设计实训时用的一个很好的例子。
Global.asa文件的创建的目的是为了提高整个网站的运行效率,同时为了了解和掌握ASP网络程序设计课程所讲的知识,本网上购书城设计在站点的根目录下创建了一个Global.asa文件。其完整代码如下:
Sub Application_OnStart
Set Application(“conn1”)=Server.CreateObject(“ADODB.Connection”)
P1=“Provider=Microsoft.Jet.OLEDB.4.0;”
path1=“Data Source=”&Server.MapPath(“db.mdb”)
Application(“conn1”).Open pl&path1
End Sub
Sub Application_OnEnd
Application(“conn1”).close
Set Application(“conn1”) = Nothing
End Sub
Sub Session_OnStart
startpage =“index.asp”
currentPage = request.ServerVariables(“SCRIPT_NAME”)
If Stecomp(currentPage,startPage,1) then
response.redirect startpage
End If
session.timeOut = 10
End Sub
Sub Session_OnEnd
cartID=session.sessionID
spl = “delete from carts where cartID='''&cartID&'''”
Application(“conn1”).execute sql
End Sub