根据讲师所讲总结了一下(可能存在些描述错误)

-------------mvc进入asp.net管道原理: (在执行httpapplication管道之前mvc和asp.net是相同的,不同之处在于管道第七个事件对http请求进行了重定向,交给了现有的mvchandler实例,而不是asp.net模型中自己创建的一个httpHander;)

1.当网站启动执行application_start方法,注册路由规则;先创建了一个mvcRouteHandler路由处理器实例(它获取最终处理http

请求的httpHandler处理器)给route路由实例的Routehandler属性中去了;而这个属性又放到了RouteData路由数据对象的

RouteHandler属性中去了;

2.当请求开始到asp.net httpapplication管道中的第七个事件时将http请求重定向为一个现有的mvchttpHandler处理器实例;在 第七个事件和第八个事件之间,会判断http请求是否指定了处理器,如果指定了就不会创建。这样httpcontext就被mvc处理过滤 截获了,而不会在走asp.net的handler。

3.在第七个事件,会将所有的在.netframework注册的httpModule初始化,调用每一个init方法。当然在.net4.0在配置文件中注册

了urlroutingModule。当执行它的init方法时,就会行UrlRouteModule事件响应方法,而在这个方法内部便实现了http请求的重定

向,而处理器则是mvchandler;首先在事件响应方法中,会遍历注册的路由并将请求url进行匹配,一旦匹配上这时就会获取路由规

则的路由数据对象RouteData;(在1中,可以知道最终的httphandler便在这个数据对象中)从数据对象的routehandler属性获取

mvcroutehandler的实例,在从这个实例的getHttpHandler方法获取最终的mvchandler即最终的httphandler;

4.在mvchandler中:内部创建控制器工厂,并获得控制器实例,执行action,返回视图进行渲染,再response流给客户端;

5.在11和12个事件之间执行mvchandler的pr方法。在pr方法内根据httcontext创建控制器工厂 实例和并由工厂创建控制器实例;之后调用控制器的execute方法(内部就是调用了invokeaction);执行完action后 获取actionresult,并调用它的executeResult方法;找到对应的视图引擎,并调用引擎的render渲染方法;

asp.net mvc请求响应模型原理回顾的更多相关文章

  1. asp.net请求响应模型原理随记回顾

    asp.net请求响应模型原理随记回顾: 根据一崇敬的讲师总结:(会存在些错误,大家可以做参考) 1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文.并通过主sock ...

  2. ASP.NET MVC学习之模型绑定(1)

    一.前言 下面我们将开始学习模型绑定,通过下面的知识我们将能够理解ASP.NET MVC模型的模型绑定器是如何将http请求中的数据转换成模型的,其中我们重点讲述的是表单数据. 二.正文 1.简单类型 ...

  3. Asp.net Mvc 中的模型绑定

    asp.net mvc中的模型绑定可以在提交http请求的时候,进行数据的映射. 1.没有模型绑定的时候 public ActionResult Example0() { ) { string id ...

  4. ASP.NET MVC学习之模型验证详解

    ASP.NET MVC学习之模型验证篇 2014-05-28 11:36 by y-z-f, 6722 阅读, 13 评论, 收藏, 编辑 一.学习前的一句话 在这里要先感谢那些能够点开我随笔的博友们 ...

  5. HTTP协议请求响应模型

    HTTP协议请求响应模型:以”用户登录“这个场景来描述 第一步:客户端发起请求到API接口层,操作:用户在客户端填写用户名和密码,点击登录,发送请求. 第二步:api接收到客户端发起的用户请求,api ...

  6. Asp.Net MVC 请求原理分析

    分析Asp.Net MVC的请求过程,我们从以下几方面看: 配置:IIS网站的配置可以分为两个块:全局 Web.Config 和本站 Web.Config . Asp.Net Routing属于全局性 ...

  7. IIS和ASP.NET MVC 管道处理模型

    转载自  博客园 青羽 http://www.cnblogs.com/tenghoo/archive/2009/11/04/IIS_And_ASPNET_Http_Runtime_Pipeline.h ...

  8. ASP.NET MVC 处理管线模型

    MVC管道整体处理模型 1.在ASP.NET MVC处理管线中的第一站就是路由模块.当请求到达路由模块后,MVC框架就会根据Route Table中配置的路由模板来匹配当前请求以获得对应的contro ...

  9. ASP.NET MVC学习之模型验证篇

    一.学习前的一句话 在这里要先感谢那些能够点开我随笔的博友们.慢慢的已经在博客园中度过一年半了,伊始只是将博客园作为自己学习的记录本一样使用,也不敢将自己的随笔发表到博客园首页,生怕自己的技艺不高,反 ...

随机推荐

  1. 源码编译安装 MySQL 5.5.x 实践(转)

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  2. 详细说明C++笔试题,调查超载、盖、多态

    C++可见版本,他说,这本书是采访的主题,调查超载.盖.多态性等概念,比较有代表性的.今天上午,远程辅导 Yan Wang 学生们学习 Qt 时还觉得这个话题,假设你能正确地理解这一主题,注意对于 C ...

  3. mybatis型材xxxx.xml缺少后果返回类型

    下面是一个mybatis型材xxxx.xml失踪resultMap错误: 严重: Servlet.service() for servlet [SpringMVC] in context with p ...

  4. .net程序调用检测和性能分析工具——DotTrace

    DotTrace可以对.net程序进行性能监测,对正在运行的程序和网站监控,主要界面如下: 需要将该工具安装在程序运行的服务器上. 主要用到这个视图,显示了每个方法的时间,下面是反编译出来的代码. P ...

  5. 无法打开物理文件mdf,操作系统错误 5:"5(拒绝訪问。)"

    无法打开物理文件mdf,操作系统错误 5:"5(拒绝訪问.)" 环境: SQL Server 2008 R2 问题: 附加数据库时报错"无法打开物理文件mdf.操作系统错 ...

  6. MySQL进口.sql文件和常用命令

    MySQL进口.sql文件和常用命令 在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次运行多条sql命令的.在mysql中运行sql文件的命令: mysql> so ...

  7. Unity + iBatis + Asp.net Mvc 系统搭建

    Unity + iBatis + Asp.net Mvc 系统搭建 之前用EntityFramework Code First做了一些小项目,很是方便:后来在一个 Java 项目中接触了myBatis ...

  8. cocos2d-x3.x 设计与实现弹出对话框

    要定义一个类PopupLayer 代码PopupLayer.h #ifndef __crossDT_PopupLayer__ #define __crossDT_PopupLayer__ #inclu ...

  9. RabbitHub开源

    RabbitHub开源情况及计划   之前写过一篇”.NET 平台下的插件化开发内核(Rabbit Kernel)”,已经过去三个月了,期间RabbitHub并不是没有了发展更不是放弃了发展,在Rab ...

  10. 经典算法题每日演练——第十一题 Bitmap算法

    原文:经典算法题每日演练--第十一题 Bitmap算法 在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美, 但是在特定的场 ...