关于HttpHandler与HttpModule的理解和应用方法(3)

问题: 既然HttpHandler的作用是将请求中,各个不同类型后缀名的文件,映射给不同的处理程序去处理,那么处理程序是在页面生命周期中的那个时间中映射处理请求的呢?

答: 依照上面的24个事件,这个HttpHandler节点中的映射是在第10个步骤中触发的。而他映射给不同的处理程序,这些处理程序中方法、类的实现是在第15步触发的。

再说HttpModule。      

HttpHandler是针对一类型的文件,映射给指定的处理程序对请求进行出来。并且映射,与处理都发生在asp.net已经指定好的事件中。

而HttpModule则是针对所有的请求文件,映射给指定的处理程序对请求进行处理,而这些处理,可以发生在请求管线中的任何一个事件中。也就是说你订阅哪个事件,这写处理就发生于那个事件中,处理过后再执行,你订阅过的事件的下一个事件,当然你也可以终止所有事件直接运行最后一个事件,这就意味这他可以不给HttpHandler机会,很牛的HttpModule。    

HttpHandler的使用  

     HttpHandler的使用通过一种防盗链技术来演示

1.首先注册HttpHandler:在Web.config中注册    

复制代码 代码如下:


<httpHandlers>
                <!--映射jpg格式的文件,给ProcessHandler_test.CustomHandler处理。-->
                <!--type里面逗号之前 命名空间加类名(ProcessHandler_test.CustomHandler),后面程序集名称-->
                <add path="*.jpg" verb="*" type="httphander_test.CustomHandler, ProcessHandler_test" />
            </httpHandlers>


        上面注册是把网站中请求jpg格式文件的请求,映射给命名空间为httphander_test类名为CustomHandler的程序集ProcessHandler_test来处理请求。

2.如果想通过HttpHandler处理请求,必须在映射的处理程序中实现接口IHttpHandler

3.映射到的程序代码如下

复制代码 代码如下:


View Code

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgpdf.html