ASP.NET处理程序和模块(一)

本文介绍了ASP.NET处理程序和模块的基本概念及实现步骤。详细解释了如何创建自定义的HTTP处理程序和HTTP模块,包括实现必要的接口和在Web.config中进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ASP.NET处理程序和模块

ASP.NET HTTP 处理程序(Handler)是响应对 ASP.NET Web 应用程序的请求而运行的程序

如处理 *.aspx文件的ASP.NET处理程序,当用户请求 *.aspx文件时就通过相应的处理程序.

这是ASP.NET内置的处理程序,默认处理*.aspx文件的是ASP.NET的页处理程序

(用于所有 ASP.NET 页的默认 HTTP 处理程序.)

内置处理程序还有:

处理*asmx文件的Web服务处理程序在(ASP.NET 中作为

.asmx 文件创建的 Web 服务页的默认 HTTP 处理程序)

处理ashx文件的泛型处理程序(不含 UI 和包括 @ WebHandler 指令的所有

Web 处理程序的默认 HTTP 处理程序)

学习ASP.NET处理程序编程的目的:深入了解ASP.NET服务器相应客户端的过程,

创建自己的ASP.NET处理程序来提高网站的健壮性(比如状态、身份验证等)。

创建HTTP处理程序步骤:

实现 IHttpHandler接口。

实现 ProcessRequest方法。

在 Web.config 中注册该处理程序。

要创建ASP.NET处理程序要实现 IHttpHander接口(System.Web命名空间下)

IHttpHander接口中只有一个方法 void ProcessRequest(HttpContext context)

而且还有一个属性 IsReusable 获取一个值,该值指示其他请求是否可以使用 IHttpHandler实例。

此时已经实例化好了context对象(一个context对象相当于整个网站信息,context中有

Application、Response、Request等属性),这样就把用户的请求和响应完全掌握在自己手中了。

实现IHttpHander接口(这里注意一下显式实现,隐式实现,想一下接口的定义)

ASP.NET处理程序需要在Web.config中配置

找到<httpHandlers></httpHandlers>配字节

(根据请求中指定的 URL 和 HTTP 谓词将传入的请求映射到相应的处理程序)

<add> 指令按由上而下的顺序进行处理。如果两个或多个 <add> 元素指定相同的谓词/路径,

组合则最后一个 <add> 会重写其他所有元素。

<add verb="" path="*.文件扩展名" type="(命名空间)类">

ASP.NET模块

HTTP 模块(Module)是一个在每次针对应用程序发出请求时调用的程序集。

HTTP 模块作为 ASP.NET 请求管道的一部分调用,它们能够在整个请求过程中访问生命周期事件

HTTP 模块一般用于检查传入和传出的请求并根据该请求进行操作。

创建HTTP模块步骤:

1、实现 IHttpModule接口。

2、处理 Init 方法并为所需事件进行注册。

3、处理该事件。

4、在 Web.config 中注册该模块。

实现IHttpModule接口(System.Web命名空间下)

IHttpModule接口中有两个方法:

Dispose 处置由实现 IHttpModule 的模块使用的资源(内存除外)。

Init 初始化模块,并使其为处理请求做好准备。

Init(HttpApplication application)初始化模块,并使其为处理请求做好准备。

该方法最为实用

在该方法中用application对象来处理各种事件

比如处理开始请求事件:

application.BeginRequest += new EventHandler(application_BeginRequest);

再编写自己的application_BeginRequest方法即可(注意委托的定义).

Dispose 处置由实现 IHttpModule 的模块使用的资源(内存除外)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值