IHttpModule与IHttpHandler的区别整理

HttpModule

在页面生命周期中这两个是很重要的接口,

在系统中的HttpModule类也是实现了IHttpModule这个接口,然后给请求管道注册了19个事件。

当然 ,咱们程序员也可以自己来写一个类,让这个类实现这个IHttpModule接口,然后在实现Init()这个方法,在这个方法中可以为请求上下文注册19个事件,从而达到19个事件为我们所用。

IHttpModule是一个五谷杂粮都吃的家伙,无论来的是什么请求(.aspx.html.rar)等都会经过HttpModule过滤器。

实现IHttpModule接口的类,是应用程序集,而非页面级。

HttpModule只是在页面处理前和后进行处理(在页面顶部或者尾部加广告,处理session),而不会对请求做处理。

步奏:

1:创建一个类,实现IHttpModule接口,实现接口中2个成员方法Init(),Dispose()

2:在Init()方法中可以对19个事件进行注册方法,实现方法。

3:编写方法,HttpApplication app=(HttpApplication)sender;

然后对app对象进行操作。

4:在web.config文件中填写<httpmodules>

<add name=demo type=命名空间+类名,程序集名>

</httpmodules>

 

HttpModule处理被截成两块,一块在HttpHandler之前执行,一块在HttpHandler之后执行

HttpHandler

HttpHandler是一般处理程序。可以对请求做真正的处理。不会对静态文件请求做处理。

实现IHttpHandler接口的类,必须实现Is Reusable属性(一般返回true)ProcessRequest()方法

PR方法中可以得到请求上下文(context),对请求做处理。

可以使用HttpHandler做验证码,压缩图片,图片防盗链等处理

原文地址:https://www.cnblogs.com/alua/p/3010447.html