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做验证码,压缩图片,图片防盗链等处理