成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET的HTTP模塊和處理程序之請(qǐng)求的處理過程

開發(fā) 后端
為了實(shí)現(xiàn)擴(kuò)充或擴(kuò)展Web服務(wù)器的功能,ASP.NET提供了HttpHandler(HTTP處理程序)和HttpModule(HTTP模塊),這里,筆者將帶各位深入了解這些組件的詳細(xì)信息。在上篇文章中,我們已經(jīng)簡(jiǎn)單介紹了一部分,這篇文章,筆者將向大家介紹ASP.NET的請(qǐng)求處理過程。

  ASP.NET請(qǐng)求的處理過程

  ASP.NET請(qǐng)求處理過程是基于管道模型的,在模型中ASP.NET把http請(qǐng)求傳遞給管道中的所有模塊。每個(gè)模塊都接收http請(qǐng)求并有完全控制權(quán)限。模塊可以用任何自認(rèn)為適合的方式來處理請(qǐng)求。一旦請(qǐng)求經(jīng)過了所有HTTP模塊,就最終被HTTP處理程序處理。HTTP處理程序?qū)φ?qǐng)求進(jìn)行一些處理,并且結(jié)果將再次經(jīng)過管道中的HTTP模塊:

 

 

  請(qǐng)注意在http請(qǐng)求的處理過程中,只能調(diào)用一個(gè)HTTP處理程序,然而可以調(diào)用多個(gè)HTTP模塊。

  Http處理程序

  HTTP處理程序是實(shí)現(xiàn)了System.Web.IHttpHandler接口的.NET組件。任何實(shí)現(xiàn)了IHttpHandler接口的類都可以用于處理輸入的HTTP請(qǐng)求。HTTP處理程序與ISAPI擴(kuò)展有些類似。HTTP處理程序和ISAPI擴(kuò)展的差別在于在URL中可以使用HTTP處理程序的文件名稱直接調(diào)用它們,與ISAPI擴(kuò)展類似。

  HTTP處理程序?qū)崿F(xiàn)了下列方法:

方法名稱 描述
ProcessRequest 這個(gè)方法實(shí)際上是http處理程序的核心。我們調(diào)用這個(gè)方法來處理http請(qǐng)求。
IsReusable 我們調(diào)用這個(gè)屬性來決定http處理程序的實(shí)例是否可以用于處理相同其它類型的請(qǐng)求。HTTP處理程序可以返回true或false來表明它們是否可以重復(fù)使用。

  你可以使用web.config或者machine.config文件把這些類映射到http請(qǐng)求上。映射完成以后,當(dāng)接收到相應(yīng)請(qǐng)求的時(shí)候ASP.NET會(huì)實(shí)例化http處理程序。我們將解釋如何在web.config和/或machine.config文件中定義所有這些細(xì)節(jié)信息。

  ASP.NET還通過IHttpHandlerFactory接口支持http處理程序的擴(kuò)展。ASP.NET提供了把http請(qǐng)求路由到實(shí)現(xiàn)IHttpHandlerFactory接口的類的對(duì)象上的能力。此外,ASP.NET還利用了Factory設(shè)計(jì)模式。這種模式為建立一組相關(guān)對(duì)象而不提供具體類的功能提供了接口。簡(jiǎn)單的說,你可以把用于建立依賴傳遞進(jìn)來的參數(shù)建立的http處理程序?qū)ο蟮念惪醋魇莊actory(工廠)。我們不用指定需要實(shí)例化的特定的http處理程序;http處理程序工廠處理這種事務(wù)。這樣做的優(yōu)點(diǎn)在于如果未來實(shí)現(xiàn)IHttpHandler接口的對(duì)象的實(shí)現(xiàn)方法發(fā)生了改變,只要接口仍然相同,客戶端就不會(huì)受到影響。

  下面是IHttpHandlerFactory接口中的方法列表:

方法名稱 描述
GetHandler 這個(gè)方法負(fù)責(zé)建立適當(dāng)?shù)奶幚沓绦虿阉闹羔樂祷氐秸{(diào)用代碼(ASP.NET運(yùn)行時(shí))。這個(gè)方法返回的處理程序?qū)ο髴?yīng)該實(shí)現(xiàn)了IHttpHandler接口。
ReleaseHandler 這個(gè)方法負(fù)責(zé)在請(qǐng)求處理完成后釋放http處理程序。Factory 實(shí)現(xiàn)決定了它的操作。Factory 實(shí)現(xiàn)可以是實(shí)際摧毀實(shí)例,也可以把它放入緩沖池供以后使用。

  在配置文件中注冊(cè)HTTP處理程序和HTTP處理程序工廠

  ASP.NET在下面的配置文件中維護(hù)自己的配置信息:

  · machine.config

  · web.config

  machine.config文件包含應(yīng)用于計(jì)算機(jī)上安裝的所有Web應(yīng)用程序的配置設(shè)置信息。

  web.config文件對(duì)于每個(gè)Web應(yīng)用程序來說是特定的。每個(gè)Web應(yīng)用程序都有自己的web.config文件。Web應(yīng)用程序的任何子目錄也可能包含自己的web.config文件;這使得它們能夠覆蓋父目錄的設(shè)置信息。

  為了給我們的Web應(yīng)用程序添加HTTP處理程序,你可以使用<httpHandlers>和<add>節(jié)點(diǎn)。實(shí)際上,處理程序都帶有<add>節(jié)點(diǎn),列舉在<httpHandlers>和</httpHandlers>節(jié)點(diǎn)之間。下面是添加HTTP處理程序的一個(gè)普通的例子:

  1. <httpHandlers>  
  2.  <add verb="supported http verbs" path="path" type="namespace.classname, assemblyname" />  
  3. <httpHandlers> 

  在上面的XML中,

  · Verb屬性指定了處理程序支持的HTTP動(dòng)作。如果某個(gè)處理程序支持所有的HTTP動(dòng)作,請(qǐng)使用“*”,否則使用逗號(hào)分隔的列表列出支持的動(dòng)作。因此如果你的處理程序只支持HTTP GET和POST,那么verb屬性就應(yīng)該是“GET, POST”。

  · Path屬性指定了需要調(diào)用處理程序的路徑和文件名(可以包含通配符)。例如,如果你希望自己的處理程序只有在test.xyz文件被請(qǐng)求的時(shí)候才被調(diào)用,那么path屬性就包含“test.xyz”,如果你希望含有.xyz后綴的所有文件都調(diào)用處理程序,path屬性應(yīng)該包含“*.xyz”。

  · Type屬性用名字空間、類名稱和部件名稱的組合形式指定處理程序或處理程序工廠的實(shí)際類型。ASP.NET運(yùn)行時(shí)首先搜索應(yīng)用程序的bin目錄中的部件DLL,接著在全局部件緩沖(GAC)中搜索。

【編輯推薦】

  1. ASP.NET的HTTP模塊和處理程序
  2. ASP.NET的HTTP模塊和處理程序之處理程序的執(zhí)行
  3. ASP.NET的HTTP模塊和處理程序之對(duì)話狀態(tài)
  4. ASP.NET的HTTP模塊和處理程序之HTTP模塊的注冊(cè)和使用
  5. ASP.NET的HTTP模塊和處理程序之模塊實(shí)現(xiàn)
責(zé)任編輯:韓亞珊 來源: 天極網(wǎng)
相關(guān)推薦

2011-04-13 15:18:10

.htmHTTP請(qǐng)求處理

2011-04-13 16:27:48

HTTPASP.NET

2011-04-13 16:59:41

HTTPASP.NET

2009-07-24 10:57:41

ASP.NET ISAIIS6

2011-04-13 14:57:11

ASP.NET請(qǐng)求處理

2011-04-13 16:49:26

HTTPASP.NET

2011-04-13 16:35:47

HTTPASP.NET

2009-07-27 13:25:15

Postback程序處ASP.NET

2010-07-22 09:13:00

ASP.NET

2009-10-15 14:50:34

ASP.NET Rou

2009-07-20 17:49:07

JSF請(qǐng)求處理

2009-07-20 16:04:37

ASP.NET fra

2009-07-28 15:29:03

實(shí)現(xiàn)HTTP請(qǐng)求ASP.NET

2010-05-06 13:33:47

Asp.Net負(fù)載均衡

2009-08-04 11:46:09

2009-07-23 16:28:55

2024-05-13 09:32:06

攔截器HTTP中間件

2009-08-05 16:04:50

2009-07-20 16:14:39

ASP.NET運(yùn)行時(shí)

2009-06-19 16:20:14

ASP.NET錯(cuò)誤處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 青青草一区 | 一级毛片免费 | 久久精品综合 | 国产乱码精品一品二品 | 亚洲伊人精品酒店 | 成人免费视频网址 | 99精品99| h视频在线免费 | 亚洲免费片 | 妞干网视频 | 狠狠色综合久久丁香婷婷 | 一区二区三区在线电影 | 久热电影 | 在线观看免费毛片 | 亚洲视频在线看 | 国产亚洲精品91 | 一区二区精品在线 | av在线黄 | 成人午夜高清 | 一级做a爰片性色毛片16 | 尤物在线 | 国产一区二区三区四区 | 日本色综合 | 欧美在线视频一区二区 | 国产精品久久久久久福利一牛影视 | 99re国产 | 欧美视频成人 | 羞羞视频网站免费观看 | 99精品一级欧美片免费播放 | 亚洲国产精品99久久久久久久久 | 国产精品日韩欧美一区二区三区 | 羞羞视频免费在线观看 | 九九热这里 | 亚洲欧美自拍偷拍视频 | 日韩在线xx | 国产精品国产a级 | 精品久久一区 | 国产福利在线 | 色小姐综合网 | 日韩一区二区在线免费观看 | 精品视频国产 |