淺析IHttpModule和IHttpHandler

作者: Leon Weng  來源: 博客園  發布時間: 2009-10-19 09:52  閱讀: 2689 次  推薦: 0   原文鏈接   [收藏]  

最近開發中涉及到一些使用IHttpModule和IHttpHandler,只是儲備不夠,抓緊查詢MSDN學習了一下,將學習點滴記錄一下。

一、IHttpModule

查看這個接口的代碼可以發現,它是由兩個方法組成:

public interface IHttpModule{   void Dispose();   void Init(HttpApplication context); }

看到兩個方法及方法標簽,就明白這個IHttpModule接口有什么作用了,Init方法中傳入了一個HttpApplication參數,它提供對 ASP.NET 應用程序內所有應用程序對象的公用的方法、屬性和事件的訪問,包括了HttpApplication下的方法、屬性和事件的訪問。那么具體有那些呢?

image

包括了所有我們經常會用到的一些對象,Application,Context,Event,Modules,Request,Response,Server,Session,Site,User,BeginRequest,EndRequest等等,其中Context中有個一個方法Context.RewritePath可以用來重寫URL的,也就是說只要你在App_code中添加一個繼承IHttpModule接口的類,并在webconfig中添加此Module后,這個類就可以處理全局的應用程序所有的方法、屬性和事件了。

1.針對常用的操作做了一個測試:

image

應用程序將向每個請求的頁面上輸出這個Module中的內容。

2.針對URL重寫測試如下:

image

說明,當有用戶請求頁面時如果請求路徑不包括custom則重寫URL,但是這個測試是失敗的,正在研究RewritePath這個方法的用法。

二、IHttpHandler

這個接口由一個屬性一個方法組成

public interface IHttpHandler{   bool IsReusable { get; }      void ProcessRequest(HttpContext context);    }

IsReusable獲取一個值,該值指示其他請求是否可以使用 System.Web.IHttpHandler 實例。

System.Web.HttpContext 對象,它提供對用于為 HTTP 請求提供服務的內部服務器對象(如 Request、Response、Session 和 Server)的引用。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()