程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> BlogEngine.Net架構與源代碼分析系列part13:實現分析(上)

BlogEngine.Net架構與源代碼分析系列part13:實現分析(上)

編輯:關於ASP.NET

HttpHandlers與HttpModules

這已經是系列的第13篇了,實際上到現在為止您應該對BlogEngine.Net的整體設計有了一定的把握,對部分實現細節有了比較深刻的認識,在閱讀BlogEngine.Net時希望堅持到最後,並把握住宏觀,深入到微觀。本文將詳細介紹BlogEngine.Net中的HttpHandlers與HttpModules,主要說明它們要實現的功能以及如何使用,並對幾個必要的HttpHandler或HttpModule進行比較細致的分析。

HttpHandler和HttpModule

對於HttpHandler和HttpModule我這裡不想多說了,因為關於它們講解的文章實在太多太多了,大家可以在博客園的找找看中直接輸入“HttpHandler和HttpModule”就可以找到。我的理解就是一個HttpHandler要實現IHttpHandler接口,主要是對某個請求進行直接處理,一個HttpModule要實現IHttpModule接口,主要是在HttpApplication的生命周期的事件中對請求和響應進行過濾。它們都可以在Web.config文件中進行配置。

BlogEngine.Net中的HttpHandler

BlogEngine.Net中的HttpHandler都在BlogEngine.Core.Web.HttpHandlers空間下(除了MetaWeblogHandler,已經講過,這裡就不包含它了),通過Web.config我們可以看到它們的映射關系:

HttpHandlers映射表

<httpHandlers>
<add verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" validate="false"/>
<add verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="js.axd" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="sioc.axd" type="BlogEngine.Core.Web.HttpHandlers.Sioc, BlogEngine.Core" validate="false"/>
<add verb="*" path="apml.axd" type="BlogEngine.Core.Web.HttpHandlers.Apml, BlogEngine.Core" validate="false"/>
<add verb="*" path="foaf*.axd" type="BlogEngine.Core.Web.HttpHandlers.Foaf, BlogEngine.Core" validate="false"/>
</httpHandlers>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved