一、把路由添加到路由表,

二、注册ControllerBuilder(老板)和默认工厂(DefaultControllerFactory)

2.1默认工厂获取可以创建的Controller。

三、由于配置文件中含有IHttpModule的配置,所以会在HttpApplication的指定事件发生时执行注册的委托。

3.1路由数据根据HttpContext来获取RouteData,

3.2根据RouteData和HttpContext封装成RequestContext

3.3使用HttpContextWrapper的RemapHandler方法来为请求指定处理程序

3.4在实现了IHandler类中ProcessRequest方法获得Context的Controller的名称,初始化Controller,然后执行ControllerBase的Execute方法,在初始化Controller时,初始化一个ModelBinder,用来实现Model的绑定。这样就进入了Controller中

四、进入Controller之后,执行Execute方法

五、在Controller执行Execute方法,ActionInvoke方法执行指定的Action,执行Action时可以根据其参数和3.4得到的ModelBinder来实现Model的绑定。

六、执行Action的ExecuteResult方法,获得Result。

源码

迷你版mvc框架执行过程的更多相关文章

  1. 手写Spring MVC框架(一) 实现简易版mvc框架

    前言 前面几篇文章中,我们讲解了Spring MVC执⾏的⼤致原理及关键组件的源码解析,今天,我们来模仿它⼿写⾃⼰的mvc框架. 先梳理一下需要实现的功能点: tomcat加载配置文件web.xml: ...

  2. php--->自己封装的简易版mvc框架

    最近根据自己的理解,封装了一个自己的框架,来重新系统化梳理自己对mvc框架的理解:后续会陆续添加各种新的功能. 欢迎指点交流. GitHub:https://github.com/Frankltf/m ...

  3. 手写mini版MVC框架

    目录 1, Springmvc基本原理流程 2,注解开发 编写测试代码: 目录结构: 3,编写自定义DispatcherServlet中的初始化流程: 3.1 加载配置文件 3.2 扫描相关的类,扫描 ...

  4. android模拟器(genymotion)+appium+python 框架执行过程中问题解答

    1.case运行过程中中文输入不进去? 答:注意事项 1)需要修改系统编码为utf-8,才能解决中文输入问题,case执行入口文件添加代码如下: import sys reload(sys) sys. ...

  5. MVC学习笔记---MVC框架执行顺序

    一.把路由添加到路由表, 二.注册ControllerBuilder(老板)和默认工厂(DefaultControllerFactory) 2.1默认工厂获取可以创建的Controller. 三.由于 ...

  6. 【SpringMVC笔记】第一课-框架执行过程

    SpringMVC模型的执行流程

  7. 迷你版AOP框架

    http://www.cnblogs.com/artech/archive/2008/11/27/1342309.html

  8. 请求如何进入ASP.NET MVC框架

    一.前言 对于WebForm开发,请求通常是一个以.aspx结尾的url,对应一个物理文件,从代码的角度来说它其实是一个控件(Page).而在MVC中,一个请求对应的是一个Controller里的Ac ...

  9. 基于Node的高性能MVC框架

    赶上公司去Windows化,有一大波.net站点需要转成Node.js,于是自己就顺便琢磨一个通用的Node版MVC框架. 经过几天的努力,beta版终于面世了!因为其高性能的特点,特地命名node- ...

随机推荐

  1. 高效的MySQL分页——利用子查询分页

    ——先抄回来~~~ 首先看一下分页的基本原理: mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G*** ...

  2. Android适配底部返回键等虚拟键盘的完美解决方案

    这个问题来来回回困扰了我很久,一直没能妥善解决. 场景1:华为手机遮挡了屏幕底部. 场景2:进入应用时,虚拟键自动缩回,留下空白区域. 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占 ...

  3. WSAAsyncSelect模型触发不了FD_Close消息?

    原帖链接: http://bbs.csdn.net/topics/330164174 楼主: Server用WSAAsyncSelect模型,Client关闭程序时(不进行shutdown与close ...

  4. LeetCode[Linked List]: Remove Duplicates from Sorted List II

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  5. mysql在插入或更新的时候对一个字段赋递增值

    在我们有一个需求是更新某个表里面的某个字段,让这个字段变成一个递增的值,或者插入某个表中使得某些字段的值是递增的.下面我们来看看具体的操作: 更改表字段为递增 首先设置一个变量,初始值为任意数值,这里 ...

  6. Linux查看磁盘占用率及文件大小

    查看磁盘占用率: 在 df 命令中使用-h选项,以人类易读的格式输出(例如,5K,500M 及 5G) linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令 ...

  7. java类加载,简单认识

    java类加载,简单认识 在第一次创建一个类的对象或者第一次调用一个类的静态属性和方法的时候,会发生类加载 类加载期间,如果发现有静态属性,就给对应的静态属性分配内存空间,并赋值 这个过程完成之后,今 ...

  8. c 常见错误

    ."c" not an argument in function sum 该标识符不是函数的参数2.array bounds missing ] in function main ...

  9. 关于的 recorder robotium 的Eclipse插件(URL:http://recorder.robotium.com/updates/或者说不可用)

    最近在学robotium.看到别人说robotium的Eclipse的插件非常好用. 打算安装时.发现死活都无法连接http://recorder.robotium.com/updates/ 过程是  ...

  10. Atitit 转移特效attilax总结

    Atitit 转移特效attilax总结 总结一般从按钮,转移到大点的方框上回比较好看点.. <!--jq ui--> <style type="text/css" ...