HttpHandler一般处理程序的简单使用

概述

HttpHandler是一个HTTP请求的真正处理中心,也正是在这个HttpHandler容器中,ASP.NET  Framework才真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中。

IHttpHandler是什么

IHttpHandler在MSDN中的定义:使用自定义的HTTP处理程序同步处理HTTP Web请求而实现的协定。(注意:如果是异步的话就要使用IHttpAsyncHandler接口)
IHttpHandler定义了如果要实现一个HTTP请求的处理所必需实现的一些系统约定。HttpHandler与HttpModule不同,一旦定义了自己的HttpHandler类,那么它对系统的HttpHandler的关系将是“覆盖”关系。
IHttpHandler包含一个属性IsReusable,用于获取当前IHttpHandler实例是否可用,一般设置为true;一个方法ProcessRequest(HttpContext context),进行实际的操作过程。

IHttpHandler如何处理HTTP请求

当一个HTTP请求经过HttpModule容器传递到HttpHandler容器中时,ASP.NET Framework会调用HttpHandler的ProcessRequest成员方法来对这个HTTP请求进行真正的处理。

流程图

HttpHandler一般处理程序的简单使用_第1张图片

httpHandlers结点中各属性意义

HttpHandler一般处理程序的简单使用_第2张图片
Verb属性
指定了处理程序支援的HTTP动作。“*”支持所有的HTTP动作;“GET”支援Get操作;“POST”支援Post操作;“GET, POST”支援两种操作
Path属性
指定了需要调用处理程序的路径和文件名(可以包含万用字元).“”、“.aspx”
Type属性
用名字空间、类名称和程序集名称的组合形式指定处理程序或处理程序工厂的实际类型. ASP.NET运行时首先搜索bin目录中的DLL,接着在GAC中搜索

Web.Config中的配置

HttpHandler一般处理程序的简单使用_第3张图片

选择泛型处理常式,然后输入名称,如图所示:

HttpHandler一般处理程序的简单使用_第4张图片

创建档之后所看到的原始代码,如图所示:

HttpHandler一般处理程序的简单使用_第5张图片

IRequiresSessionState,讀取Session值所用接口; context.Response.Write(“Hello World”) 返回值

HttpHandler一般处理程序的简单使用_第6张图片

学习资料

1.1 ASP.NET中的異步 HttpHandler實現
http://www.hello-code.com/blog/asp.net/201512/5793.html

1.2 HttpHandler的認識與加深理解
http://www.cnblogs.com/whtydn/archive/2009/10/19/1585778.html

1.3 什麼是HttpHandler
http://www.studyofnet.com/news/378.html

你可能感兴趣的:(ASP.NET)