為了編寫用戶界面的應(yīng)用程序,,開發(fā)者可以把應(yīng)用程序標(biāo)準(zhǔn)的邏輯和時間處理的代碼加到Web Application 里面,。這些代碼不產(chǎn)生用戶界面,,也不想英單個得頁面的請求。事實上,,這些代碼處理更高水平的事件,,如Application_Start, Application_End, Session_Start, Session_End,等等,。開發(fā)者通過放在web應(yīng)用程序根目錄下面的Global.asax來響應(yīng)這些事件,。
Asp.net通過一個動態(tài)的.NET FrameWork 類自動解析和編譯這個文件,,這個類就是HttpApplication基類,,在第一時間里面,,在這個文件里面的應(yīng)用程序的資源將會被響應(yīng),。
首先,,在包含有請求的應(yīng)用程序名字空間中被訪問之前,,Global.asax將被解析和編譯成.NET Framework的一個類,。這個文件本身有拒絕被訪問的配置。
下面我們來看看這個文件里面的具體內(nèi)容,,首先我們聲明這個文件的使用語言,、運行環(huán)境:
<script language="VB" runat=server>
'相關(guān)方法
</script>
然后我們就可以定義各種方法了,
Sub Application_Start()
'方法的屬性等
End Sub
如果事件處理代碼需要用到名字空間,,我們可以這樣來引用它:
<%@ Import Namespace="System.Data.SQL"%>
下面我們來看看這個文件的具體應(yīng)用,,首先我們在我們的Web Server上建立一個Global.asax文件,我們在里面加上我們的代碼:
<script language="VB" runat=server>
'相關(guān)方法
Sub Application_Start()
'方法的屬性等
End Sub
Sub Application_Start(Sender As Object, E As EventArgs)
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()
End Sub
Sub Application_End(Sender As Object, E As EventArgs)
' Clean up application resources here
End Sub
Sub Session_Start(Sender As Object, E As EventArgs)
Response.Write("Session 正在啟動...<br>")
End Sub
Sub Session_End(Sender As Object, E As EventArgs)
' Clean up session resources here
End Sub
</script>
當(dāng)然,,我們還要配置Config.web,,用來指定出錯信息的打印頁面。根據(jù)上面我們配置Config.web的經(jīng)驗,,我們很容易的就可以對這個文件進行配置:
<configuration>
<customerrors mode="on" defaultredirect="error.htm" />
<globalization requestencoding="gb2312" responseencoding="gb2312" />
</configuration>
第二句話就是配置我們指定的出錯頁面語句,。我們寫兩個頁面來實現(xiàn)它,,一個為出錯頁面,一個為實現(xiàn)這個功能的aspx頁面,。出錯頁面很簡單的,,就是報告程序出錯時顯示的信息,我們就寫"在config.web里面配置的連接,!",,是經(jīng)過aspx頁面甩出來的。
在aspx頁面,,我們用下面的語句來響應(yīng)出錯按鈕點擊事件:
Sub Error_Click(Sender As Object, E As EventArgs)
'甩出異常,!
throw New Exception()
End Sub
以外我們的響應(yīng)Session的方法用下面的語句來說明:
Sub Session_Click(Sender As Object, E As EventArgs)
Session.Abandon()
Response.Redirect("global.aspx")
End Sub
下面是完整的代碼:
<html>
<script language="VB" runat="server">
'頁面導(dǎo)入
Sub Page_Load(Sender As Object, E As EventArgs)
Response.Write("正在裝入頁面...<br>")
End Sub
'Session事件
Sub ssaidy(Sender As Object, E As EventArgs)
Session.Abandon()
Response.Redirect("global.aspx")
End Sub
'響應(yīng)錯誤方法
Sub esaidy(Sender As Object, E As EventArgs)
'拋出異常
throw New Exception()
End Sub
</script>
<body>
<br><br><br>
<center>
<form runat="server">
<input type="submit" Value="刷新這個頁面" runat="server"/>
<input type="submit" OnServerClick="ssaidy" Value="結(jié)束這個Session" runat="server"/>
<input type="submit" OnServerClick="esaidy" Value="錯誤表示" runat="server"/><p>
<hr>
</form>
</center>
<br><br>
</body>
</html>
運行結(jié)果如下:
點擊"錯誤表示"按鈕,顯示如下:
4.3.1小結(jié)
講述了配置文件Global.asax的配置問題,,Global.asax文件對一個.NET技術(shù)構(gòu)建的WEB站點來講,,是非常必須的,本章我們的內(nèi)容就是針對它講的,。