要自定義一個handler,可以執行IhttpHandler,並在config.web文件的httphandlers一節中添加類信息。下面舉例說明如何創建自定義一個HttpHandler,將所有的請求對應到"SimpleHandler.ASPx"中:
SimpleHandler
[]<a href=http://www.aspnextgen.com/quickstart/aspplus/samples/aPPS/handler/vb/simplehandler.ASPx>點擊運行程序</a>]
| []<a href=http://www.aspnextgen.com/quickstart/util/srcvIEw.aspx?path=/quickstart/ASPplus/samples/aPPS/handler.src>查看源代碼</a>]
自定義HttpHandler可以通過執行IhttpHandler接口來創建,這個接口只有兩個方法。通過調用IsReusable,一個HTTP
factory就能夠查詢handler(處理器)以判斷是否同一實例可以用於服務多個請求。ProcessRequest方法接受HttpContext實例作為參數。這裡的例子中,請求數據被忽略,一個常量字符串作為響應發送到客戶端。請看下面使用VB、C#以及JScript三種語言編寫的代碼:
C#
public class SimpleHandler : IHttpHandler {
public void ProcessRequest(HttpContext context) {
context.Response.Write("Hello World!");
}
public bool IsReusable() {
return true;
}
}
VB
Public Class SimpleHandler : Inherits IHttpHandler
Public Sub ProcessRequest(context As HttpContext)
context.Response.Write("Hello World!")
End Sub
Public Function IsReusable() As Boolean
Return(True)
End Function
End Class
JScript
public class SimpleHandler implements IHttpHandler {
public function ProcessRequest(context:HttpContext) : void {
context.Response.Write("Hello World!");
}
public function IsReusable() : Boolean {
return true;
}
}
將編譯的處理器集合放置到application的/bin目錄下面後,我們就可以指定處理器類到請求的目標上。在這裡,所有對"SimpleHandler.ASPx"的請求將被路由到SimpleHandler類的一個實例上,它生存於名字空間Acme.SimpleHandler中。
結 語
以上通過原理與實例講述了.NET之ASP Web Application的概念及使用,我們看到了如何使用三種不同的編程語言達到目的。你會發現,我們正在慢慢地觸及.NET的神奇思想,領會.Net的震撼力量。我們有理由相信,憑借如此強大的工具,開發人員將更具創造力!