王永和
我們已經(jīng)知道Application和Session對(duì)象的OnStart、OnEnd事件的腳本,都必須是在 Global.asa 文件中聲明的。那究竟Global.asa是什么樣的一個(gè)文件?它的作用有何?又該如何運(yùn)用呢?
首先.asa是文件后綴名,它是Active Server Application的首字母縮寫。Global.asa文件可以是管理在ASP應(yīng)用中兩個(gè)非??量痰膶?duì)象:Application、Session。它其實(shí)是一個(gè)可選文件,程序編寫者可以在該文件中指定事件腳本,并聲明具有會(huì)話和應(yīng)用程序作用域的對(duì)象。該文件的內(nèi)容不是用來給用戶顯示的,而是用來存儲(chǔ)事件信息和由應(yīng)用程序全局使用的對(duì)象。該文件必須存放在應(yīng)用程序的根目錄內(nèi)(可以是虛擬目錄的相對(duì)根下且必須安裝IIS)。每個(gè)應(yīng)用程序只能有一個(gè)Global.asa文件。
關(guān)于Global.asa文件最常見的錯(cuò)誤概念是它能為一般的使用的函數(shù)和子程序用作書庫。Global.asa文件僅能用于創(chuàng)建對(duì)象的引用和俘獲啟動(dòng),以及結(jié)束Application對(duì)象和Session對(duì)象。
Global.asa文件主要基于會(huì)話級(jí)事件被訪問,在以下三種情況下被調(diào)用:
1.當(dāng)Application_OnStart或Application_
OnEnd事件被觸發(fā)。
2.當(dāng)Session_OnStart或Session_OnEnd事件被觸發(fā)。
3.當(dāng)引用一個(gè)在Global.asa文件里被實(shí)例化的對(duì)象(Object)。
Global.asa的標(biāo)準(zhǔn)文件格式如下:
封裝標(biāo)記結(jié)束
因?yàn)楹芏鄷隙冀o了global.asa的理論,但學(xué)生學(xué)起來還是不知道它有什么用,一頭霧水。所以下面的實(shí)例就是我們學(xué)校學(xué)生在《ASP實(shí)訓(xùn)網(wǎng)上購書城》設(shè)計(jì)實(shí)訓(xùn)時(shí)用的一個(gè)很好的例子。
Global.asa文件的創(chuàng)建的目的是為了提高整個(gè)網(wǎng)站的運(yùn)行效率,同時(shí)為了了解和掌握ASP網(wǎng)絡(luò)程序設(shè)計(jì)課程所講的知識(shí),本網(wǎng)上購書城設(shè)計(jì)在站點(diǎn)的根目錄下創(chuàng)建了一個(gè)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