欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
IHttpHandler接口 - HeroBeast - 博客園
HeroBeast 海爾比斯特's BlogsIHttpHandler接口
2008-01-23 20:50 by HeroBeast, 2118 visits,網(wǎng)摘,收藏,編輯
是否想學(xué)習HTTP處理程序編程呢?好吧,第一步工作是熟悉IHttpHandler接口。HTTP處理程序只不過(guò)是實(shí)現該接口的托管類(lèi)。更確切地講,同步HTTP處理程序實(shí)現IHttpHandler接口;而異步HTTP處理程序實(shí)現IHttpAsyncHandler接口。讓我們先看看同步處理程序。
IHttpHandler接口的合同定義了HTTP處理程序以同步方式處理一個(gè)HTTP請求需要采取的行動(dòng)。
1. IHttpHandler接口的成員
IHttpHandler接口只定義了兩個(gè)成員:ProcessRequest和IsReusable,如表2.1所示。ProcessRequest是一個(gè)方法,而IsReusable是一個(gè)布爾邏輯屬性。
表2.1  IHttpHandler接口的成員
成  員
描    述
IsReusable
該屬性獲得一個(gè)布爾值,指示另一個(gè)請求是否可以使用該HTTP處理程序的實(shí)例
ProcessRequest
該方法處理HTTP請求
Page類(lèi)上的IsReusable屬性返回false,表示需要該HTTP請求的新實(shí)例來(lái)服務(wù)一個(gè)頁(yè)面請求。通常我們使它在所有情況下都返回false,并根據請求負荷的不同而要求它做一些有意義的處理。那些被用作篩選特殊請求的簡(jiǎn)單屏障的處理程序可以將IsReusable設置為true,以節省一些CPU周期。稍后我將用一個(gè)具體的實(shí)例來(lái)說(shuō)明這一點(diǎn)。
ProcessRequest方法具有如下簽名:
void ProcessRequest(HttpContext context);
它以請求的上下文作為輸入,并確保該請求得到服務(wù)。在同步處理程序的情況下,當ProcessRequest返回時(shí),準備把輸出發(fā)到客戶(hù)端。
2. 一個(gè)簡(jiǎn)單的HTTP處理程序
再次強調,HTTP處理程序只是一個(gè)實(shí)現了IHttpHandler接口的類(lèi)。請求的輸出是在ProcessRequest方法中建立的,如下面的代碼所示:
using System.Web;
namespace ProAspNet20.Advanced.CS.Components
{
public class SimpleHandler : IHttpHandler
{
// Override the ProcessRequest method
public void ProcessRequest(HttpContext context)
{
context.Response.Write("<H1>Hello, I'm an HTTP handler</H1>");
}
// Override the IsReusable property
public bool IsReusable
{
get { return true; }
}
}
}
我們需要一個(gè)能夠調用該處理程序的入口點(diǎn)。在此上下文中,該處理程序代碼的入口點(diǎn)只不過(guò)是一個(gè)HTTP終點(diǎn)——即,一個(gè)公共的URL。該URL必須有一個(gè)惟一的名稱(chēng),使IIS和ASP.NET運行庫能夠把它映射到該代碼。注冊時(shí),HTTP處理程序和Web服務(wù)器資源之間的映射是通過(guò)web.config文件建立的。
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="myHandler.aspx"
type="ProAspNet20.Advanced.CS.Components.SimpleHandler" />
</httpHandlers>
</system.web>
</configuration>
<httpHandlers>節列出了當前應用程序可用的處理程序。這些設置指示,對myHandler.aspx終點(diǎn)的任何輸入請求,由SimpleHandler處理程序負責處理。要注意的是,myHandler.aspx URL不必是服務(wù)器上的物理資源;它只是一個(gè)公共資源標識符。type屬性引用包含該處理程序的類(lèi)和程序集,它的標準格式是type[,assemly]。如果該組件在A(yíng)pp_Code或其他保留文件夾中定義,則忽略該程序集信息。
 注意    如果在machine.config文件中輸入上述設置,則將把SimpleHandler組件注冊成可以從服務(wù)器機器上托管的所有Web應用程序內可調用的組件。
如果調用myHandler.aspx URL,將得到如圖2.2所示的結果。
圖2.2  一個(gè)響應myHandler.aspx請求的HTTP處理程序示例
這里所述的方法是使用HTTP處理程序最快、最簡(jiǎn)單的方法,但是有關(guān)HTTP處理程序注冊的知識,我們還有很多要了解并且還有很多其他選項可以利用?,F在,讓我們考慮一個(gè)更復雜的HTTP處理程序示例。
HTTP處理程序與ASP.NET頁(yè)面
我們應當利用HTTP處理程序資源來(lái)實(shí)現應用程序特有的功能,它們需要比常規的Web頁(yè)面被更快地處理。在任何情況下,HTTP處理程序返回一個(gè)帶有內容類(lèi)型和主體的有效的HTTP響應。服務(wù)一個(gè).ashx請求,或者一個(gè)自定義處理程序托管的任何其他請求,可能會(huì )導致比服務(wù)一個(gè).aspx資源更快的代碼。ASP.NET處理一個(gè)自定義的處理程序通常更快,因為這不必對用戶(hù)代碼引發(fā)任何中間事件(例如,Init, Load),不必托管任何視圖狀態(tài),而且也不支持任何回發(fā)機制。大概說(shuō)來(lái),對一個(gè)自定義的HTTP處理程序的請求類(lèi)似于對.aspx資源的請求,其中只發(fā)生呈現步驟。此外,找到服務(wù)一個(gè)頁(yè)面請求所需的正確的HTTP處理程序可能需要更長(cháng)的時(shí)間,因為這要牽涉到一個(gè)頁(yè)面處理程序工廠(chǎng)的中間對象。
這就是說(shuō),我們要記住,ASP.NET頁(yè)面只是一個(gè)HTTP處理程序——雖然是一個(gè)非常復雜而高級的HTTP處理程序。底層的處理機制完全相同。如果說(shuō)滿(mǎn)足某種特定需要的自定義的HTTP處理程序通常比頁(yè)面更快,這是因為它們通常是為了直接得到給定結果而實(shí)現的。例如,假設我們需要顯示從一個(gè)數據庫中取出來(lái)的一個(gè)圖像——這是我們將在第9章中詳細討論的一個(gè)主題,我們仍然需要將一個(gè)Image控件綁定到一個(gè)服務(wù)合適的MIME類(lèi)型的URL。該URL應當是一個(gè)頁(yè)面嗎?它當然可以是頁(yè)面;但是,如果使用一個(gè)自定義的HTTP處理程序,通常會(huì )處理得更快。
ASP.NET頁(yè)面是一個(gè)復雜對象,并由一個(gè)自定義的而且必定是復雜的HTTP處理程序(Page類(lèi))提供服務(wù)。就服務(wù)自定義資源而言,一定要使用一個(gè)合適的處理程序,只包
含必需的智能和復雜度。為了說(shuō)明這一點(diǎn),假設要運行一個(gè)查詢(xún)并提供一個(gè)數據庫中存儲的一個(gè)圖像的字節,我們不需要任何視圖狀態(tài)和回發(fā)管理,也不需要向該應用程序激發(fā)事件。
應當使用一般的.ashx資源,還是使用一個(gè)自定義的擴展呢?這主要取決于需要實(shí)現的功能。ASHX方法是為相對簡(jiǎn)單的場(chǎng)景設計的,其中幾乎不需要傳遞什么參數(或者根本不需要參數),并使用查詢(xún)字符串來(lái)引入它們。如果有一個(gè)自定義的文檔要處理,并且該文檔具有以非平面的或復雜的布局進(jìn)行組織的各種信息,則最好使用自定義的擴展。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一般處理程序
再續.ashx
了解ASP.NET頁(yè)面對象模型
自定義處理程序
點(diǎn)一點(diǎn)學(xué)ASP.NET之基礎概念——HttpHandler
ASP.NET ASHX 一般處理程序教程 (轉載)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久