什么是ASP.NET中的HttpHandler?为什么以及如何使用?
Answers:
用最简单的术语来说,ASP.NET HttpHandler是实现System.Web.IHttpHandler
接口的类。
ASP.NET HTTPHandlers负责拦截对ASP.NET Web应用程序服务器的请求。它们作为对ASP.NET站点的请求的响应而运行。最常见的处理程序是处理.aspx文件的ASP.NET页处理程序。当用户请求.aspx文件时,页面将通过页面处理程序处理该请求。
ASP.NET提供了一些默认的HTTP处理程序:
您可以创建自己的自定义HTTP处理程序,以将自定义输出呈现给浏览器。例如,ASP.NET中HTTP处理程序的典型方案是
您实现的IHttpHandler
接口来创建一个同步处理程序和IHttpAsyncHandler
创建异步处理程序接口。接口要求您实现ProcessRequest
方法和IsReusable
属性。
该ProcessRequest
方法处理对请求的实际处理,而BooleanIsReusable
属性指定是否可以合并处理程序以进行重用(以提高性能),或者每个请求是否需要新的处理程序。
HttpHandler
被称为?这是因为该页面派生自然后创建HttpHandler
了Page
对象,然后调用了页面事件?是这样吗?谢谢你的耐心。
一个HttpHandler
(或IHttpHandler
)基本上是什么,它负责提供内容服务。ASP.NET页(aspx)是一种处理程序。
例如,您可以编写自己的文件,以便从数据库而不是从Web服务器本身提供图像等,或者编写简单的POX服务(而不是SOAP / WCF / etc)
HttpHandler
被称为?这是因为该页面派生自然后创建HttpHandler
了Page
对象,然后Page Events
调用了?是这样吗?
HttpHandler示例,
ASP.NET 2.0中的HTTP处理程序
处理程序负责满足浏览器的请求。浏览器管理的请求可以通过文件扩展名处理,也可以通过直接调用处理程序来处理。服务于传入Http请求的低级Request和Response API是Asp.Net中的Http处理程序。所有处理程序都实现IHttpHandler接口,该接口位于System.Web命名空间中。处理程序在某种程度上类似于Internet服务器应用程序编程接口(ISAPI)扩展。
您实现IHttpHandler接口来创建同步处理程序,并实现IHttpAsyncHandler接口来创建异步处理程序。这些接口要求您实现ProcessRequest方法和IsReusable属性。ProcessRequest方法处理对发出的请求的实际处理,而Boolean IsReusable属性指定是否可以合并处理程序以重用以提高性能,或者每个请求是否需要新的处理程序。
.ashx文件扩展名保留给自定义处理程序。如果创建文件扩展名为.ashx的自定义处理程序,它将自动在IIS和ASP.NET中注册。如果选择使用备用文件扩展名,则必须在IIS和ASP.NET中注册该扩展名。使用.ashx以外的扩展名的优点在于,您可以将多个文件扩展名分配给一个处理程序。
配置HTTP处理程序
配置节处理程序负责将传入的URL映射到IHttpHandler或IHttpHandlerFactory类。可以在计算机,站点或应用程序级别声明它。子目录继承这些设置。管理员使用tag指令配置该部分。指令以自上而下的顺序进行解释和处理。对节处理程序使用以下语法:
创建HTTP处理程序
要创建HTTP处理程序,必须实现IHttpHandler接口。IHttpHandler接口具有一个方法和一个具有以下签名的属性:void ProcessRequest(HttpContext); bool IsReusable {get;}
任何实现System.Web.IHttpHandler
Interface的类都将成为HttpHandler
。此类作为进程运行,以响应对ASP.NET站点的请求。
最常见的处理程序是处理.aspx文件的ASP.NET页处理程序。当用户请求.aspx文件时,请求将通过页面处理程序(实现System.Web.IHttpHandler
Interface的类)由页面处理。
您可以创建自己的自定义HTTP处理程序,以将自定义输出呈现给浏览器。
一些ASP.NET默认处理程序为:
ASP.NET HTTP处理程序是响应对ASP.NET Web应用程序的请求而运行的过程(通常称为“端点”)。最常见的处理程序是处理.aspx文件的ASP.NET页处理程序。当用户请求.aspx文件时,页面将通过页面处理程序处理该请求。您可以创建自己的HTTP处理程序,以将自定义输出呈现给浏览器。
一个ASP.NET HTTP
处理程序是处理(经常被称为“端点”)响应于到ASP.NET Web应用程序发出的请求运行。最常见的处理程序是处理.aspx文件的ASP.NET页处理程序。当用户请求时.aspx file
,页面将通过页面处理程序处理请求。
ASP.NET页面处理程序只是一种类型的处理程序。ASP.NET带有其他一些内置处理程序,例如的Web服务处理程序.asmx files
。
如果需要特殊处理,可以使用应用程序中的文件扩展名进行标识,则可以创建自定义HTTP处理程序。例如,以下情况将很好地使用自定义HTTP处理程序:
RSS提要 要为站点创建RSS提要,可以创建一个发出RSS格式XML的处理程序。然后,您可以将应用程序中的.rss扩展名(例如)绑定到自定义处理程序。当用户向您的站点发送以.rss结尾的请求时,ASP.NET将调用您的处理程序来处理该请求。
图像服务器 如果希望Web应用程序提供各种大小的图像,则可以编写一个自定义处理程序来调整图像的大小,然后将其作为处理程序的响应发送回用户。
HTTP处理程序可以访问应用程序上下文,包括发出请求的用户的身份(如果知道),应用程序状态和会话信息。当请求HTTP处理程序时,ASP.NETProcessRequest
在适当的处理程序上调用该方法。处理程序的ProcessRequest
方法将创建一个响应,并将其发送回请求的浏览器。与任何页面请求一样,响应通过订阅了处理程序运行后发生的事件的所有HTTP模块进行。