zoukankan      html  css  js  c++  java
  • .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框架(讲解的非常棒)

     
  • 相关阅读:
    Vue props向子组件中传递数据
    Vue 组件间的通信
    vue slot插槽
    Vue 组件化注意事项
    VUE多个组件示例
    Vue组件化开发
    Vue 获取当前时间并格式化
    VUE 过滤器以及插件
    Vue 表单数据双向绑定 v-mode
    VUE 事件修饰符以及按键码
  • 原文地址:https://www.cnblogs.com/yanglang/p/6812202.html
Copyright © 2011-2022 走看看