1.浏览器发送请求页面路径到IIS,服务器的映射表根据请求页面的后缀来判断。若是html等静态页面,则从磁盘取出页面发送响应报文给浏览器,若是aspx等动态页面则把请求报文交给.net Framework处理。

2.报文首先交给一个ASPNET_ISAPI.dll的扩展程序,然后再交给ISAPIRuntime,创建一个ISAPIWorkerRequest对象。isapiRuntime内部执行HttpRuntime的PR(wr)方法,在HttpRuntime的PR方法内部创建HttpContext上下文对象(把报文各部分以属性形式封装在HttpRequest和HttpResponse中,还包含Session,Application等)

3.由于每次请求都创建HttpApplication对象消耗大,因此调用HttpApplicationFactory的一个静态方法生成HttpApplication,该静态方法第一步获取Global文件的类型确保被初始化,第二部确保网站第一次访问时调用了Global文件里的Application_Start方法。

3.1创建好HttpApplication对象(mvc默认是MvcApplication类)之后,程序员注册路由的路径,默认值和约束,在Global.asax文件注册路由(RegisterRoute)方法中看到RouteCollectionExtensions对象调用了MapRoute方法,该方法就帮程序员创建一个Route对象,把当前配置的路由信息都保存在该对象里,然后遍历剩下的路由信息,添加到RouteCollection集合中,至此Application_Start方法执行完毕。

4.获取Global文件里的类型作为网站的HttpApplication,在创建HttpApplication实例初始化过程中,调用了一个InitModules初始化过滤器的方法,该方法内部创建一个过滤器集合,读取并遍历系统配置文件(Framework4.0系统的web.config添加了一个过滤器-UrlRoutingModule,这也是传统的WebForm和MVC区别)和配置文件定义的所有过滤器创建HttpModules对象,然后添加到集合里,该集合再统一循环调用Init方法,为application对象里面某些事件注册方法(向请求管道里的事件注册用户的代码,完成AOP编程)。

5.接着由于ASP.NET在HttpApplication的请求管道中第八个事件创建页面类对象,因此上一步的
Init方法在app对象的第七个事件PostResolveRequestCache注册方法。该方法里首先判断浏览器请求的URL是否有服务器文件对应

转载于:https://www.cnblogs.com/lanzaiyige/archive/2012/10/14/2723526.html

MVC整体流程机制原理概述相关推荐

  1. Spring 3.x MVC 图解MVC整体流程

    Spring mvc的生命周期 开始使用 spring mvc之前,我们必须需要了解下SPRING MVC的流程,如下图: 在看下图之前的一些说明: (下面介绍的HandlerMapping,Hand ...

  2. Spring MVC执行流程及原理

    面试找虐 博主之前每次去面试必问的问题:"讲一下spring mvc的执行流程以及常用组件的作用": 记得第一次和面试官说了大概的流程是这样的:"服务器收到一个请求后会先 ...

  3. 使用tcpdump在iphone手机上的抓包流程和原理概述

    在ios应用开发过程中,为了进行端到端的分析,很多时候我们需要对手机的抓包进行分析. 对手机的抓包我们要在手机上安装抓包工具:tcpdump 前提:手机越狱:安装tcpdump    这样一部ipho ...

  4. Spring MVC控制流程与简易配置方案

    2019独角兽企业重金招聘Python工程师标准>>> 整体流程核心原理概述: 1.       用户发送请求给服务器.url:user.do (1)user.do为页面请求. 2. ...

  5. 我们来研究一下Eureka的工作流程机制及相关原理

    作者:代码忘烦恼 blog.csdn.net/qwe86314/article/details/94552801 Eureka 工作原理 我们来学习 Eureka,了解它的相关概念.工作流程机制等. ...

  6. 深入浅出Vue.js阅读——整体流程——实例方法与全局API的实现原理

    深入浅出Vue.js阅读--整体流程--实例方法与全局API的实现原理 1. 数据相关的实例方法 2. 事件相关的实例方法 1. vm.$on 2. vm.$off 3. vm.$once 4. vm ...

  7. Spring MVC中数据绑定流程和原理

    Spring MVC不支持表单日期字符串和日期类型之间的转换 Spring MVC数据绑定的流程(Spring MVC通过反射 机制对目标处理方法进行解析) 1.Spring MVC将ServletR ...

  8. ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

    开篇:上一篇我们了解了在WebForm模式下一个Page页面的生命周期,它经历了初始化Init.加载Load以及呈现Render三个重要阶段,其中构造了页面控件树,并对页面控件树进行了大量的递归操作, ...

  9. Win32窗口机制和消息机制整体流程

    [ 摘要] 本节课通过一张图,详细的介绍了Windows的窗口机制和消息机制整体流程,让你一目了然. Windows系统,是窗口作为基础的系统,以消息机制作为运转机制的系统.我们学习Windows编程 ...

  10. 二、Netty服务端/客户端启动整体流程

    一.综述 Netty 的整体流程相对来说还是比较复杂的,初学者往往会被绕晕.所以这里总结了一下整体的流程,从而对 Netty 的整体服务流程有一个大致的了解.从功能上,流程可以分为服务启动.建立连接. ...

最新文章

  1. 无屏幕和键盘配置树莓派WiFi和SSH
  2. 数据指标有哪些?什么是好的数据指标?
  3. 【NOIP2012-开车旅行】
  4. armeabi和armeabi-v7a的区别
  5. 电脑摄像头未能创建连接服务器,Win7中摄像头提示未能创建视频预览错误怎么办...
  6. 你需要知道的基础算法知识——STL和基础数据结构(四)
  7. 使用案例_Excel中LOOKUP函数的使用案例
  8. Adobe Acrobat Reader离线安装包下载
  9. 计算机局域网共享本地安全策略,如何设置局域网共享
  10. fsf大流行政治天网抗议监视
  11. 词云python_诗词名句网 -古诗词大全|诗歌|诗词鉴赏|古诗名句|诗句赏析!
  12. Chrome更新89版本后,sessionStorage丢失a标签跳转丢失sessionStorage
  13. SpringBoot整合极光推送
  14. 产品分析报告——“京东到家”
  15. .计算机软件系统包括,计算机软件系统包括什么
  16. Unity3d 屏幕特效实现类似死亡之后的全屏黑白效果
  17. java 导出excel换行_java WriteExcelFile生成excel如何让在一个单元格内换行?
  18. 【附源码】计算机毕业设计SSM人脸识别考勤系统
  19. App前端,Web前端,后端,微信小程序到底该学啥?
  20. USB驱动分析(三)

热门文章

  1. Sql Server 中 根据具体的值 查找该值所在的表和字段
  2. 数据结构与算法之树的进阶
  3. VS2022编译项目出现““csc.exe”已退出,代码为 -1073741819”的错误解决办法
  4. 10. Have assignment operators return a reference to *this
  5. Android进阶之利用Tablayout+ViewPager+Fragment实现神奇的滑动效果
  6. tcp压测工具_使用BeetleX的TcpBenchmark工具进行百万设备模拟测试
  7. 安装linux-mysql-yum方式
  8. win10的js文件-bat脚本-开启移动热点
  9. python bottle部署_如何使用python-Bottle框架创建REST API应用程序,以及如何在apache服务器上部署restapi应用程序?...
  10. python去除列表指定位置元素_Python实现判断并移除列表指定位置元素的方法