.NET之ASP WebApplication快速入門(4)(轉載)
來源:互聯網
上載者:User
application|web|快速入門 Application 或 Session作用範圍內的對象
在Global.asax檔案中,我們可以通過object標記定義靜態對象,這些對
象可以是.NET架構類,也可以是經典的COM組件。其作用範圍可以是
appinstance、session或者application中的任一種。如果一個對象的
作用範圍是Appinstance,就表示這個對象明確屬於HttpApplication的
一個執行個體,並且不被共用。
請看下面定義對象作用範圍的例子:
<object id="id" runat="server" class=".NET
Framework class Name" scope="appinstance">
<object id="id" runat="server" progid="Classic
COM ProgID" scope="session"/>
<object id="id" runat="server" classid="Classic
COM ClassID" scope="application"/>
什麼是HttpHandlers 和 factories(Http處理器和工廠)
ASP.NET提供了一套低層級的請求/響應API,利用它們我們就可以使
用.NET架構類服務於輸入的HTTP請求,它們就是HTTPHandlers
和Factories。HTTPHandlers 和Factories可以說是ASP.NET架構的中
樞。Factories(工廠)將每個請求分配給一個handler(處理器),由
這個處理器再負責處理請求。具體實現步驟就是建立支援
System.Web.IHTTPHandler介面的類,並執行ProcessRequest()方法。
當不要求進階別頁面架構提取的服務處理HTTP請求時,處理器經常很有用
途。處理器的一般用途包括過濾器和仿CGI應用,特別是那些返回二進位
資料的應用。
ASP.NET接收的每一個HTTP輸入請求最終被一個特殊的類執行個體
IHTTPHandler所處理,IhttpHandlerFactory提供了處理器到
IHTTPHandler執行個體的基礎下部組織。ASP.NET內建3個標準的
IhttpHandlerFactory類:
PageHandlerFactory,RestrictedResourceFactory和
WebServiceHandlerFactory。我們還可以有選擇的建立並註冊附加
factories(工廠)以支援更豐富的請求決定和啟用場合。
配置HttpHandlers 和 Factories
HTTPHandlers 和factories 作為config.web檔案的一部分進行配置。
ASP.NET定義了一個"httphandlers"配置節,在這裡可以添加和刪除
HTTPHandlers和factories。這些配置資訊可以通過子目錄而繼承下來。
比如,下面這些代碼位於config.web檔案的頭部,目的就是映射所有關
於.aspx檔案的請求到PageHandlerFactory類:
<httphandlers>
...
<add verb="*" path="*.aspx"
type="System.Web.UI.PageHandlerFactory"
/>
...
</httphandlers>