时间:2016-02-16 03:14 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【从请求管道深入剖析HttpModule的实现机制图文介绍】,下面是详细的讲解!
从请求管道深入剖析HttpModule的实现机制图文介绍
想要了解底层的原理必须对请求处理过程和页面的生命周期有点了解才方便您入门学习一下内容:关于请求处理过程和页面的生命周期将会在接下来的日子为大家做一个深入的讲解。
HttpModule的实现机制如下:
1.请求到达ISAPIRuntime 的时候通过ProcessReqeust(下文统称pr ) 方法创建 HttpWrokRequest 对象。
2.在执行ISAPIRuntime 的pr 方法时候,方法内部的HttpRuntime 的pr 方法根据HttpWorkRequest 对象创建了上下文对象 HttpContext 。
3.在HttpRuntime 的 pr 方法内部又通过 HttpApplicationFactory 创建了一个处理应用程序的 HttpApplication 实例。
注意:HttpApplication的创建是根据Global.asax文件编译后的类型,再通过反射的方法创建的实例,由于创建实例的过程非常消耗时间和资源,这个则使用了对象池技术
4.在创建HttpApplication 实例的过程中,内部会调用InitInternal 方法,在这个方法里面 调用了HttpModule 的初始化方法,实现了事件的注册。
注意:在实现事件的注册的过程中,内部会去配置文件里面找是否有配置HttpModule模块,如果有则通过反射注册,没有则继续往下走,直到方法跳出。这个过程就是微软的插件机制的体现。
5.事件注册完之后,HttpApplication实例则开始调用自己的pr 方法开始执行页面的生命周期了。
总结:HttpModule 模块的事件注册,就是在HttpApplication 实例内部调用InitInternal 方法,这个方法里面 调用了HttpModule 的初始化方法,实现了事件的注册。
下面的代码是帮助你理解这个过程:
1、首先定义一个上下文 类 HttpContext
2.定义两个接口分别为: IHttpHandler 、IHttpModule
3、定义一个页面类 Page
4.定义一个应用程序类 Application
5.模拟请求管道中的执行过程
6.自定义一个HttpModule
通过以上的步骤就实现了整个管道的执行过程和HttpModule的实现原理了。
下面是效果图:

关于从请求管道深入剖析HttpModule的实现机制图文介绍的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
