日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IHttpHandler的学习(0)

發布時間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IHttpHandler的学习(0) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本片文章轉自網絡

? ? ? 問題1:什么是HttpHandler?(Handler:處理者;那就是對Http請求的處理拉)

  問題2:什么是HttpModule?

  問題3:什么時候應該使用HttpHandler什么時候使用HttpModule?

  答案1:HttpHandler,Http請求的處理者,例如ScriptHandler、WebServiceHandler,IHttpHandler的實現都是為了處理某一類的請求。如ScriptHandler負責處理對腳本的請求。

  答案2:HttpModule,Http模塊。實際上就是那19個標準事件的處理者,或者說19個標準事件的訂閱者,比如OutputCacheModule,SessionStateModule。詳細可以到在這篇文章里面看到http://www.cnblogs.com/kissdodog/p/3527922.html。

一、HttpHandler的職責

  1、由于HTTP請求有很多種請求類型,比如請求aspx、html、jpg等等。因此,僅僅由HttpApplication直接處理請求時很臃腫的,而且不利于擴展。因此Asp.net采用了抽象工廠模式來處理這些請求。Asp.net在web.config的架構中,允許我們制定某些請求映射到一個HttpHandlerFactory(就是可以在config中配置請求的信息)

<!--適用于IIS6的配置--> <system.web><httpHandlers><add path="*.aspx" verb="*" type="MyMVC.MvcPageHandlerFactory, MyMVC" validate="true" /></httpHandlers> </system.web><!--適用于IIS7的配置(集成模式)--> <system.webServer><handlers><add name="MvcPageHandlerFactory" verb="*" path="*.aspx" type="MyMVC.MvcPageHandlerFactory, MyMVC" preCondition="integratedMode" /></handlers> </system.webServer>

  所以,我們應該這樣理解HttpHanlder:一個HttpHanlder用于響應一類的請求,為一類的請求生成響應結果。

  我們經常用到的HttpHanlder有哪些??

  1. aspx頁面。
  2. asmx服務文件。
  3. ashx文件(一般處理程序)。
  4. 實現IHttpHandler接口的自定義類型。

  我們通常使用HttpHanlder做什么??

HttpHanlder類型實現目標
aspx頁面響應aspx的請求,輸出HTML結果
asmx服務文件響應服務調用
ashx文件(一般處理程序)實現簡單的AJAX響應
實現IHttpHandler接口的自定義類響應什么擴展名的請求?

二、HttpModule的職責

  有時候有些頁面需要一些相同的檢查功能,比如身份驗證。明顯使用HttpHandler是不方便的,因為不是所有的頁面都需要去調用那些相同的功能
HttpModule的設計正是提供了一個靈活的方法解決這種功能重用的問題,它采用事件(觀察者)的設計模式,將某些HttpHandler都需要的功能抽取出來,形成不同的觀察者類型,這些觀察者類型可以編譯成類庫形式,供多個網站共用。為了讓ASP.NET管線更靈活,ASP.NET允許我們再web.config中自由配置需要的HttpModule。

<!--適用于IIS6的配置--> <system.web><httpModules><add name="SetOutputCacheModule" type="MyMVC.SetOutputCacheModule, MyMVC"/></httpModules> </system.web><!--適用于IIS7的配置(集成模式)--> <system.webServer><modules><add name="SetOutputCacheModule" type="MyMVC.SetOutputCacheModule, MyMVC" preCondition="integratedMode" /></modules> </system.webServer>

  配置只是告訴ASP.NET,這些HttpModule需要運行起來,可能會用得著。

  我們用HttpModule做什么事情??

  1.?修改某些請求(例如前面的示例修改了響應頭)。
  2.?檢查檢查請求(例如身份認證檢查)。

  HttpModule能處理哪些請求呢??

  1. 默認是全部進入ASP.NET的請求。
  2. 如果只需要處理部分請求,那么請自行判斷。

三、總結

  HttpHandler相當于一條水管,HttpModule相當于一小節水管。HttpHandler有很多條,一條流油,一條流水等等。HttpModule相當于一小截,需要過濾的長水管里面都可以裝上。

轉載于:https://www.cnblogs.com/ZkbFighting/p/9022201.html

總結

以上是生活随笔為你收集整理的IHttpHandler的学习(0)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。