asp.net 页面生命周期
2015-06-11 10:06
549 查看
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等,对于ASP.NET MVC同样适用。只是MVC URLRouting Module对进入到server的request进行了拦截,然后对此次request的handler进行了特殊的处理。总结来说,就是ASP.NET管道是所有ASP.NET Web Applicaiton,包括WebForm, MVC,是这两者的基础,这两者的不同,是在于最终使用的IHttpHandler的不同。WebForm中的使用的是Page这个Handler,MVC中使用的是MVCHander.
首先详细了解一下ASP.NET的生命周期,下面三张图非常详细,转自用三张图片详解Asp.Net 全生命周期
说明:1 第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处理完该请求并响应到客户端结束。2 第二张图片为图1中Http处理管线的详细步骤3 第三张图片为图2Http处理管线中调用处理程序(HttpHandler, 此处为Page对象)的详细生命周期过程。 图1:
图2: Http处理管线详解
图3: Asp.Net生命周期详解(WebForm的情况)
个人补充:这三张图结合原来的一篇文章ASP.NET MVC 流程概述简单的讲一下MVC的拦截原理。
通过流程概述这篇文章中的代码,并且结合本文中第一张图分析,URLRouting Moudule在PostResolveRequestCache的时候对请求进行了拦截,并且进行相应的路由分析。PostMapRequestHandler的时候完成的是本次请求的Handler的创建。注意,这里都是一些预处理,意识就是说,把以后真正要用到的Http Handler先放入到HttpContext中,此时并没有调用Proce***equest方法。PostMapRequestHandler完成后还要继续其他的管道事件,如AquireRequestState等,真正执行Handler的Process Request方法是在PostRequestHandlerExecute. 最终会按照顺序走完管道中的每一个事件。
首先详细了解一下ASP.NET的生命周期,下面三张图非常详细,转自用三张图片详解Asp.Net 全生命周期
说明:1 第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处理完该请求并响应到客户端结束。2 第二张图片为图1中Http处理管线的详细步骤3 第三张图片为图2Http处理管线中调用处理程序(HttpHandler, 此处为Page对象)的详细生命周期过程。 图1:
图2: Http处理管线详解
图3: Asp.Net生命周期详解(WebForm的情况)
个人补充:这三张图结合原来的一篇文章ASP.NET MVC 流程概述简单的讲一下MVC的拦截原理。
通过流程概述这篇文章中的代码,并且结合本文中第一张图分析,URLRouting Moudule在PostResolveRequestCache的时候对请求进行了拦截,并且进行相应的路由分析。PostMapRequestHandler的时候完成的是本次请求的Handler的创建。注意,这里都是一些预处理,意识就是说,把以后真正要用到的Http Handler先放入到HttpContext中,此时并没有调用Proce***equest方法。PostMapRequestHandler完成后还要继续其他的管道事件,如AquireRequestState等,真正执行Handler的Process Request方法是在PostRequestHandlerExecute. 最终会按照顺序走完管道中的每一个事件。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 企业批量部署RealVNC远程控制软件
- 星外ASP.Net的安全设置相关说明
- C#、ASP.NET通用扩展工具类之TypeParse
- C#、ASP.NET通用扩展工具类之LogicSugar
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- 程序中常用的种代码
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- ASP.NET页面间的传值的几种方法
- 入侵ASP.net网站的经验附利用代码
- 文章推荐系统(二)
- 基于php的CMS中展示文章类实例分析
- asp.net OleDbCommand 的用法
- jquery调用asp.net 页面后台的实现代码
- asp.net中的check与uncheck关键字用法解析
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.Net Post方式获取数据流的一种简单写法
- asp.net动态产生checkbox(数据源为DB或内存集合)
- Asp.Net 和 AJAX.Net 的区别第1/2页
- asp.net利用后台实现直接生成html分页的方法