zoukankan      html  css  js  c++  java
  • .net Mvc框架原理

    .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框架(讲解的非常棒)

  • 相关阅读:
    [题解]Magic Line-计算几何(2019牛客多校第三场H题)
    [题解]Crazy Binary String-前缀和(2019牛客多校第三场B题)
    [数论]快速幂取模
    [模板]大整数乘法——累加型
    [动态规划] 最大子段和问题
    2073
    17-2-24-D
    17-1-31-C
    2032
    1992
  • 原文地址:https://www.cnblogs.com/xiaoxin121/p/6810412.html
Copyright © 2011-2022 走看看