理解並自定義HttpHandler

2021-06-06 15:16:12 字數 3161 閱讀 5528

前言

本文有些地方會跟《asp.net管道模型(管線模型)之一發不可收拾》有些重疊,但角度會有所不同,兩篇文章相互補充,希望能完整地呈現管道模型的全貌。

目錄

1.傳送default.aspx時預設得到相應httphandler的過程;

2.如何配置;

3.自定義httphandler;

4.自定義httphandle***ctory;

5.應用例項。

傳送default.aspx時預設得到相應httphandler的過程

iis下有乙個metabase檔案,可通過**—》屬性—》主目錄—》配置—》對映中新增、修改、刪除。

圖1如何配置

之前一直迷失在如何配置的問題上,這裡先說明白吧!

下面是自定義httphandler時配置的根據:

1.自定義時要配置iis讓它把對應的檔案字尾對映到asp_isapi.exe來處理;

具體web.config配置:

1

<

handlers

>

2<

add

verb

="*"

path

="*.myhandler"

type

="my.myhandler,myassembly"

/>

3handler

>

verb:請求動作(get,post,*);

path:檔案路徑(*萬用字元);

type:,前的引數為自定義httphandler或httphandle***ctory的完整類名(含命名空間),,後的引數為自定義httphandler或httphandle***ctory所在的程式集名(不含dll字尾)。

自定義httphandler

定義乙個繼承ihttphandler介面的類並實現介面的方法:

1.processrequest方法就是具體處理請求的地方;

2.isreusable標識該httphandler類的例項物件是否可重用。就是當第乙個請求傳送過來時,例項化乙個httphandler例項物件,如果isreusable為true,那麼第二個請求傳送過來時就可以用回該例項物件而不用重新構造乙個,如果為false就要重新構造乙個例項。(有點囉嗦了(*^__^*) 嘻嘻……)一般返回true,提高效率嘛!!

web.config中配置

1

<

handlers

>

2<

add

verb

="*"

path

="*.gif"

type

="myhandler,myhandler"

/>

3handlers

>

iis中配置,在圖1中新增一項對映項,擴充套件名為.gif,可執行檔案路徑為c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,動作為全部動作,然後把「確定檔案是否存在」的核取方塊取消選中(如果選中了,就必須由對應的檔案存在才能處理,如url為a.gif,就必須有a.gif檔案真實存在,否則就返回404)。

注意:自定義的httphandler必須放在其他專案工程中,然後引用到web專案中,也就是說配置檔案中的type的程式集名稱必須寫,否則無法執行。

自定義httphandle***ctory

定義乙個繼承ihttphandle***ctory介面的類並實現介面的方法:

7#region ihttphandle***ctory 成員89

1.gethandler獲取新的具體的httphandler例項;

2.releasehandler使工廠可以重用現有的處理程式例項。

web.config中配置

1

<

handlers

>

2<

add

verb

="*"

path

="*.gif"

type

="myhandle***ctory,myhandle***ctory"

/>

3handlers

>

這裡不用配置myhandler。

iis中配置,在圖1中新增一項對映項,擴充套件名為.gif,可執行檔案路徑為c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,動作為全部動作,然後把「確定檔案是否存在」的核取方塊取消選中(如果選中了,就必須由對應的檔案存在才能處理,如url為a.gif,就必須有a.gif檔案真實存在,否則就返回404)。

理解並自定義HttpHandler

前言 本文有些地方會跟 asp.net管道模型 管線模型 之一發不可收拾 有些重疊,但角度會有所不同,兩篇文章相互補充,希望能完整地呈現管道模型的全貌。目錄 1.傳送default.aspx時預設得到相應httphandler的過程 2.如何配置 3.自定義httphandler 4.自定義http...

理解並自定義HttpHandler

前言 本文有些地方會跟 asp.net管道模型 管線模型 之一發不可收拾 有些重疊,但角度會有所不同,兩篇文章相互補充,希望能完整地呈現管道模型的全貌。目錄 1.傳送default.aspx時預設得到相應httphandler的過程 2.如何配置 3.自定義httphandler 4.自定義http...

自定義View理解

整合view view流程 onmeasure 在這個方法裡指定自己的寬高 ondraw 繪製自己的內容 整合viewgroup viewgroup流程 onmeasure 指定自己的寬高,所有子view的寬高 onlayout 擺放所有子view ondraw 繪製內容 widthmode mea...