mvc请求过程总结
来源:互联网 发布:centos7.0安装nginx 编辑:程序博客网 时间:2024/05/29 15:23
首先从客户端发出请求开始,iis接受请求,找到web应用程序运行的工作者进程,如果进程不存在,则创建的新的工作进程,在其初始化的时候,aspnet_isapi.dll被加载,isapi启动CLR以及相关应用程序域和相关web应用的初始化。随后一个特殊的运行时isapiRuntime被加载,它将接管http请求。
接管http请求的ISAPIRutime会首先创建isapiWorkRequset对象来封装当前http请求,随后将此对象传递给HttpRuntime,至此,请求到达了asp.net管道,接着就执行HttpRuntime.PR方法,其中主要做了两件事。
1.根据httpWorkRequset创建httpContext对象,此对象同于表示当前请求的上下文。
2.根据httpApplicationFatory创建或获取现有的httpApplication对象
httpApplicationFatory工厂初始化的时候,从asp.net维护的httpApplication对象池中获取HttpApplition对象,如果池子中没有对象,将通过global文件编译的类型通过反射获取httpApplication
在httpApplication初始化的时候,asp.net会根据配置文件加载并初始化HttpModule对象,httpApplication对象主要是在处理http请求不同阶段会触发不同的事件,而httpmodule的意义在于通过注册httpApplication管道中的事件,将所需的操作注入整个请求流程。
在mvc中,UrlRoutingModule注册了httpApplication请求处理阶段的第8个事件中(表示用户已获得缓存内容),在这个事件响应方法中主要是根据当前请求生成HttpContextWrapper对象以及获取根据请求URL从路由表匹配出对应的RouteData对象,接着根据当前请求从RouteData中获取mvcHanler,并将它映射到当前请求。此后http请求将交给mvcHttphadler接管。
当管道时间流动到11个和12个事件之间,将之前已映射好的HttpHandler,也就是mvcHandler,首先执行PR方法,获取ControllerFactory, 然后执行CreateControler方法通过类型反射创建Controller实例,执行Excute(RequestContext)方法。 在Excute方法中,执行IActionInvoker.invokeAction(ControllerContext,actionName)方法, 在执行具体action之前,会执行模型绑定的方法,将生成参数列表,创建ActionExcutor对象并执行Excute,最后执行ActionResult对象的ExcuteResult方法,通过视图引擎渲染输出html作为响应内容输出客户端
- mvc请求过程总结
- spring mvc请求过程
- Spring MVC请求过程
- Spring MVC 的请求过程
- MVC请求IIS处理过程
- web请求过程总结
- Web请求过程总结
- Web请求过程总结
- Web请求过程总结
- Web请求过程总结
- 3.5.5 MVC 请求的处理过程
- Spring MVC 处理请求的整体过程
- Spring Mvc 一个请求的执行过程
- Spring MVC 的http请求处理过程
- mvc框架 请求到响应的过程。
- (推荐)Spring MVC 处理Http请求过程
- spring mvc 一次请求过程跟踪(一)
- ASP.NET页面周期请求过程总结
- 数据库隔离级别的本质解释
- [SD2014集训]查询(分块+数学相关)
- SQLite基本使用
- Shiro实战(二)
- ajax跨域请求小结
- mvc请求过程总结
- 完全背包
- 1021.Deepest Root (25)
- HttpApplication的处理管道19个事件。
- phpStudy在linux下的使用说明
- SpringMVC中如何使用静态文件
- 修改Linux的基本配置
- 1005. 继续(3n+1)猜想 (25)
- #184. Products