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

     
  • 相关阅读:
    PHP联接MySQL
    PHP分页及原理
    两种ajax的方法
    Mysql 数据库 操作语句
    HTTP状态码对照表 HTTP response codes
    HTTP请求中POST与GET的区别
    Django模板导入和替换、以及对数据库的增加、查看
    Django模板(filter过滤器{{ }}与tag标签{% %}应用)
    Django视图层
    Diango路由控制
  • 原文地址:https://www.cnblogs.com/yanglang/p/6812202.html
Copyright © 2011-2022 走看看