.net Mvc框架原理

本文只是简要说明原理,学习后的总结。

1.当一个Http请求发送后会被URLRoutingModule拦截(这时候也就是正式进入管道,下章会讲管道事件

2.这时根据IsapiWorkerRequest对象,HttpRuntime会创建相当于Http请求的上下文(Context):HttpContext

3.封装HttpContext,变成HttpContextWarpper对象,再从Route集合中找到符合当前请求URL的RouteData对象,把HttpContext和RouteData对象封装成RequestContext对象

4.再根据RouteData对象中RouteHandler获取IHttpHandler,MvcHandler是 IHttpHandler的一个实现类。

5.执行IHttpHandler,通过反射执行具体的Controller,执行具体的Action

UrlRoutingMudule和MVCHandler

UrlRoutingMudule继承自接口IHttpMudule、MVCHandler继承自接口IHttpHandler,HttpMudule和HttpHandler都是HttpApplication中的对象,HttpMudule是在HttpApplication初始化中,根据配置文件加载并初始化的对象,主要负责通过注册HttpApplication的相应的事件,将所需的操作注入整个HTTP请求的处理流程。ASP.NET的很多功能,比如身份验证、授权、缓存等,都是通过相应的HttpModule实现的。而最终完成对HTTP请求的处理实现在另一个重要的对象中:HttpHandler。对于不同的资源类型,具有不同的HttpHandler。比如.aspx页对应的HttpHandler为System.Web.UI.Page,WCF的.svc文件对应的HttpHandler为System.ServiceModel.Activation.HttpHandler。

本文主要学习自MVC系列——MVC源码学习:打造自己的MVC框架(讲解的非常棒)

最新文章

  1. 缓存、队列(Memcached、redis、RabbitMQ)
  2. 【转】DPM--对象检测开山之作
  3. 与众不同 windows phone 8.0 & 8.1 系列文章索引
  4. 关于java字符串编译优化问题
  5. node.js 安装express 提示 command is not found
  6. html5视频小站
  7. C#去掉JSON字符串中的最后一个数字
  8. React .js框架的环境搭建
  9. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165215
  10. day64 django django零碎知识点整理
  11. python入门学习1
  12. linux学习笔记1——指令的基本格式及基本文件操作
  13. 20165304《Java程序设计》第七周学习总结
  14. Web.config中 mode="RemoteOnly" 跟mode="On" 区别
  15. SMR解析
  16. Swift2.0语言教程之类的属性
  17. Git 之 git原理简介
  18. 第一次作业(homework-01)成绩公布
  19. Number Sequence---hdu1711(kmp)
  20. PAT-A Java实现

热门文章

  1. 201521123026《Java程序设计》第8周学习总结
  2. java第十一次作业
  3. 在windows下安装flex和bison
  4. Oracle SQL*Plus 数据备份为 sql 文件
  5. Javascript跳转页面和打开新窗口等方法
  6. Eclipse读取含有extjs的项目文件时卡死或者编写ExtJS时卡
  7. mysql死锁+解决
  8. MyBatis的俩种事务管理器的类型
  9. angular 学习笔记
  10. 详细解读-this-关键字在全局、函数、对象、jQuery中的基础用法!