91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET的請求處理過程是怎樣的

發布時間:2021-12-06 15:33:18 來源:億速云 閱讀:182 作者:iii 欄目:編程語言

這篇文章主要介紹“ASP.NET的請求處理過程是怎樣的”,在日常操作中,相信很多人在ASP.NET的請求處理過程是怎樣的問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET的請求處理過程是怎樣的”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

ASP.NET請求的處理過程

ASP.NET請求處理過程是基于管道模型的,在模型中ASP.NET把http請求傳遞給管道中的所有模塊。每個模塊都接收http請求并有完全控制權限。模塊可以用任何自認為適合的方式來處理請求。一旦請求經過了所有HTTP模塊,就最終被HTTP處理程序處理。HTTP處理程序對請求進行一些處理,并且結果將再次經過管道中的HTTP模塊:

ASP.NET的請求處理過程是怎樣的

請注意在http請求的處理過程中,只能調用一個HTTP處理程序,然而可以調用多個HTTP模塊。

Http處理程序

HTTP處理程序是實現了System.Web.IHttpHandler接口的.NET組件。任何實現了IHttpHandler接口的類都可以用于處理輸入的HTTP請求。HTTP處理程序與ISAPI擴展有些類似。HTTP處理程序和ISAPI擴展的差別在于在URL中可以使用HTTP處理程序的文件名稱直接調用它們,與ISAPI擴展類似。

HTTP處理程序實現了下列方法:

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

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

ASP.NET還通過IHttpHandlerFactory接口支持http處理程序的擴展。ASP.NET提供了把http請求路由到實現IHttpHandlerFactory接口的類的對象上的能力。此外,ASP.NET還利用了Factory設計模式。這種模式為建立一組相關對象而不提供具體類的功能提供了接口。簡單的說,你可以把用于建立依賴傳遞進來的參數建立的http處理程序對象的類看作是factory(工廠)。我們不用指定需要實例化的特定的http處理程序;http處理程序工廠處理這種事務。這樣做的優點在于如果未來實現IHttpHandler接口的對象的實現方法發生了改變,只要接口仍然相同,客戶端就不會受到影響。

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

方法名稱描述
GetHandler這個方法負責建立適當的處理程序并把它的指針返回到調用代碼(ASP.NET運行時)。這個方法返回的處理程序對象應該實現了IHttpHandler接口。
ReleaseHandler這個方法負責在請求處理完成后釋放http處理程序。Factory 實現決定了它的操作。Factory 實現可以是實際摧毀實例,也可以把它放入緩沖池供以后使用。

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

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

· machine.config

· web.config

machine.config文件包含應用于計算機上安裝的所有Web應用程序的配置設置信息。

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

為了給我們的Web應用程序添加HTTP處理程序,你可以使用<httpHandlers>和<add>節點。實際上,處理程序都帶有<add>節點,列舉在<httpHandlers>和</httpHandlers>節點之間。下面是添加HTTP處理程序的一個普通的例子:

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

在上面的XML中,

· Verb屬性指定了處理程序支持的HTTP動作。如果某個處理程序支持所有的HTTP動作,請使用“*”,否則使用逗號分隔的列表列出支持的動作。因此如果你的處理程序只支持HTTP GET和POST,那么verb屬性就應該是“GET, POST”。

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

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

到此,關于“ASP.NET的請求處理過程是怎樣的”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

利津县| 喀喇| 衡阳市| 徐闻县| 乌恰县| 永寿县| 来宾市| 凤台县| 泾源县| 湘乡市| 连南| 平顶山市| 山东省| 双江| 兰溪市| 西贡区| 民县| 宁南县| 碌曲县| 长春市| 连云港市| 西畴县| 城市| 准格尔旗| 龙游县| 临泉县| 海门市| 南京市| 大宁县| 霍州市| 桑日县| 通海县| 江陵县| 如皋市| 西畴县| 绥芬河市| 高平市| 平凉市| 延长县| 无锡市| 凤凰县|