|
最近開發(fā)中涉及到一些使用IHttpModule和IHttpHandler,只是儲備不夠,抓緊查詢MSDN學(xué)習(xí)了一下,將學(xué)習(xí)點滴記錄一下。
一、IHttpModule
查看這個接口的代碼可以發(fā)現(xiàn),它是由兩個方法組成:
public interface IHttpModule{ void Dispose(); void Init(HttpApplication context); }
看到兩個方法及方法標(biāo)簽,就明白這個IHttpModule接口有什么作用了,Init方法中傳入了一個HttpApplication參數(shù),它提供對 ASP.NET 應(yīng)用程序內(nèi)所有應(yīng)用程序?qū)ο蟮墓玫姆椒ā傩院褪录脑L問,包括了HttpApplication下的方法、屬性和事件的訪問。那么具體有那些呢?
包括了所有我們經(jīng)常會用到的一些對象,Application,Context,Event,Modules,Request,Response,Server,Session,Site,User,BeginRequest,EndRequest等等,其中Context中有個一個方法Context.RewritePath可以用來重寫URL的,也就是說只要你在App_code中添加一個繼承IHttpModule接口的類,并在webconfig中添加此Module后,這個類就可以處理全局的應(yīng)用程序所有的方法、屬性和事件了。
1.針對常用的操作做了一個測試:
應(yīng)用程序?qū)⑾蛎總€請求的頁面上輸出這個Module中的內(nèi)容。
2.針對URL重寫測試如下:
說明,當(dāng)有用戶請求頁面時如果請求路徑不包括custom則重寫URL,但是這個測試是失敗的,正在研究RewritePath這個方法的用法。
二、IHttpHandler
這個接口由一個屬性一個方法組成
public interface IHttpHandler{ bool IsReusable { get; } void ProcessRequest(HttpContext context); }
IsReusable獲取一個值,該值指示其他請求是否可以使用 System.Web.IHttpHandler 實例。
System.Web.HttpContext 對象,它提供對用于為 HTTP 請求提供服務(wù)的內(nèi)部服務(wù)器對象(如 Request、Response、Session 和 Server)的引用。
NET技術(shù):淺析IHttpModule和IHttpHandler,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。