Global.asa使用手冊

來源:互聯網
上載者:User
Global.asa 檔案是一個可選檔案,使用者可以在該檔案中指定事件指令碼,並聲明具有會話和Application 領域的對象。該檔案的內容
給使用者顯示的,而是用來儲存事件資訊和由應用程式全域使用的對象。該檔案的名稱必須是 Global.asa 且必須存放在應用程式的
根目錄中。每個應用程式只能有一個 Global.asa 檔案。

Global.asa 檔案只能包含如下內容:

1.應用程式事件

2.會話事件

3.<OBJECT> 聲明

TypeLibrary 聲明
如果包含的指令碼沒有用 <SCRIPT> 標記封裝,或定義的對象沒有會話或Application 領域,則伺服器將返回錯誤。伺服器會忽略已標
記的但未被應用程式或會話事件使用的指令碼以及檔案中的 HTML 語句。

可以用任何支援指令碼的語言編寫 Global.asa 檔案中包含的指令碼。如果多個事件使用同一種指令碼語言,就可以將它們組織在一組
<SCRIPT> 標記中。

當使用者儲存對 Global.asa 檔案所做的更改時,在重新編譯 Global.asa 檔案之前,伺服器會結束處理當前應用程式的所有請
求。在此期間,伺服器拒絕其他請求並返回一個錯誤訊息,說明正在重啟動應用程式,不能處理請求。

當使用者當前的所有請求處理完之後,伺服器對每個會話調用 Session_OnEnd 事件,刪除所有活動會話,並調用
Application_OnEnd 事件關閉應用程式,然後編譯 Global.asa 檔案。接下來,使用者的請求將啟動應用程式並建立新的會話,觸
發 Application_OnStart 和 Session_OnStart 事件。

但是,儲存 Global.asa 檔案中所包含的檔案的更改並不能使伺服器重新編譯 Global.asa。為了讓伺服器識別包含檔案的改動,
必須再儲存一下 Global.asa 檔案。

在 Global.asa 檔案中聲明的過程只能從一個或多個與 Application_OnStart、Application_OnEnd、Session_OnStart 和
Session_OnEnd 事件相關的指令碼中調用。在基於 ASP 的應用程式中的 ASP 頁中,它們是停用。

要在應用程式之間共用過程,可在單獨的檔案中聲明這些過程,然後使用伺服器端的包含 (SSI) 語句將該檔案包含在調用該過程
的 ASP 頁中。通常,包含檔案的副檔名應為 .inc。


基於 ASP 的應用程式由在其根目錄及其子目錄中所有檔案組成。應用程式在使用者首次開啟應用程式中的某一 Web 頁時啟動,在服
務器關閉時終止。應用程式有兩個事件,即 Application_OnStart 事件和 Application_OnEnd 事件。

使用者可以在 Global.asa 檔案中為這些事件指定指令碼。當應用程式啟動時,伺服器在 Global.asa 檔案中尋找並處理
Application_OnStart 事件指令碼。當應用程式終止時,伺服器處理 Application_OnEnd 事件指令碼。


1.Application_OnStart
Application_OnStart 事件在首次建立新的會話(即 Session_OnStart 事件)之前發生。只有 Application 和 Server 內建
對象是可用的。在 Application_OnStart 事件指令碼中引用 Session、Request 或 Response 對象將導致錯誤。

文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnStart. . . End Sub

</SCRIPT>

參數
ScriptLanguage
指定用於編寫事件指令碼的指令碼語言。它可以是任何支援指令碼編寫的語言,例如 VB Script 或 JScript。如果多個事件使用同一種
指令碼語言,就可以將它們組織在一個 <SCRIPT> 標記下。

2.Application_OnEnd
Application_OnEnd 事件在應用程式退出時於 Session_OnEnd 事件之後發生,只有 Application 和 Server 內建對象可用。

文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnEnd. . . End Sub

</SCRIPT>

參數
ScriptLanguage
指定用於編寫事件指令碼的指令碼編寫語言。可以是任何一種支援指令碼的語言,例如 VBScript 或 JScript。如果有多個事件使用同
一種指令碼編寫語言,就可以將它們組織在一組 <SCRIPT> 標記下。
注釋
不能在 Application_OnEnd 指令碼中調用 MapPath 方法。




當沒有會話的使用者在開啟應用程式中的 Web 頁時,Web 服務器會自動建立會話。當逾時或伺服器調用 Abandon 方法時,伺服器
將終止該會話。

會話有兩個事件,即 Session_OnStart 事件和 Session_OnEnd 事件。

可以在通用檔案 Global.asa 中為這兩個事件指定指令碼。當會話開始時,伺服器在 Global.asa 檔案中尋找並處理
Session_OnStart 事件指令碼。該指令碼將在處理使用者請求的 Web 頁之前處理。在會話結束時,伺服器將處理 Session_OnEnd 事件
指令碼。

1.Session_OnStart
Session_OnStart 事件在伺服器建立新會話時發生。伺服器在執行請求的頁之前先處理該指令碼。Session_OnStart 事件是設定會
話期變數的最佳時機,因為在訪問任何頁之前都會先設定它們。所有內建對象 (Application、ObjectContext、Request、
Response、Server 和 Session) 都可以在 Session_OnStart 事件指令碼中使用和引用。

文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnStart. . .End Sub

</SCRIPT>

參數
ScriptLanguage
指定用於編寫事件指令碼的指令碼編寫語言。可以是任何一種支援指令碼的語言,例如 VBScript 或 JScript。如果有多個事件使用同
一種指令碼編寫語言,就可以將它們組織在一組 <SCRIPT> 標記下。
樣本
儘管在 Session_OnStart 事件包含 Redirect 或 End 方法調用的情況下 Session 對象仍會保持,然而伺服器將停止處理
Global.asa 檔案並觸發 Session_OnStart 事件的檔案中的指令碼。

舉一個例子,為了確保使用者在開啟某個特定的 Web 頁時始終啟動一個會話,就可以在 Session_OnStart 事件中調用 Redirect
方法。當使用者進入應用程式時,伺服器將為使用者建立一個會話並處理 Session_OnStart 事件指令碼。您可以將指令碼包含在該事件中
以便檢查使用者開啟的頁是不是啟動頁,如果不是,就指示使用者調用 Response.Redirect 方法啟動網頁。其示範如下例所示。

<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
 ' Make sure that new users start on the correct
 ' page of the ASP application.

 ' Replace the value given to startPage below
 ' with the virtual path to your application's
 ' start page.

 startPage = "/MyApp/StartHere.asp"
 currentPage = Request.ServerVariables("SCRIPT_NAME")

 ' Do a case-insensitive compare, and if they
 ' don't match, send the user to the start page.
 if strcomp(currentPage,startPage,1) then  Response.Redirect(startPage) end ifEnd Sub</SCRIPT>
上述樣本只能在支援 cookie 的瀏覽器中運行。因為不支援 cookie 的瀏覽器不能返回 SessionID cookie,所以,每當使用者請
求 Web 頁時,伺服器都會建立一個新會話。這樣,對於每個請求,伺服器都將處理 Session_OnStart 指令碼並將使用者重新導向到啟
動頁中。如果您要使用下面的指令碼,建議您在啟動頁上放一個通知,告訴使用者該網站要求支援 cookie 的瀏覽器。

注釋
請注意,在 Redirect 方法之後的任何 Session_OnStart 事件指令碼都不會執行。因此,應該在您的事件指令碼的最後再調用
Redirect 方法。其示範如下例所示。

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
  ' Session initialization script
  Response.Redirect "http:/server/app/StartHere.asp"
End sub
</SCRIPT>
在上面的例子中,Redirect 方法在執行會話初始化指令碼期間隱藏所有顯示給客戶的文字。

2.Session_OnEnd
Session_OnEnd 事件在會話被放棄或逾時發生。在伺服器內建對象中,只有 Application、Server 和 Session 對象可用。

文法
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd. . . End Sub

</SCRIPT>

參數



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。