zoukankan      html  css  js  c++  java
  • MVC执行过程

    HttpRuntime中的PR方法
    1,封装HttpContext
    2,获取HttpApplication 主要做3件事
    a,执行本事件时主要调用Init将Global编译得到类型,
    b,确保Appstart被调用,在mvc中主要是注册路由规则,
    c,获取Application 对象完成内部模块的初始化UrlRoutingModule向第七个事件注册了处理程序
    3,执行管道事件
    这里执行19个事件:
    到第7,8个事件之间时干一件事
    获取处理器对象 就是MvcRouteHandler
    MVC在asp.net中的执行过程
    HomeController:Controller:ControllerBase
    中的Execute=》ExecuteCore方法那么到底是哪个类在执行这个方法呢
    HomeController吧 应该是因为是通过反射的方法生成的IController类来执行Execute方法。


    到11,12时干一件事
    调用处理器的PR方法


    到第19件事结束
    下面是请求管道中的19个事件.

    (1)BeginRequest: 开始处理请求

    (2)AuthenticateRequest授权验证请求,获取用户授权信息

    (3):PostAuthenticateRequest获取成功

    (4): AunthorizeRequest 授权,一般来检查用户是否获得权限

    (5):PostAuthorizeRequest:获得授权

    (6):ResolveRequestCache:获取页面缓存结果

    (7):PostResolveRequestCache 已获取缓存 当前请求映射到MvcHandler(pr): 创建控制器工厂 ,创建控制器,调用action执行,view→response

    //action Handler : PR()

    (8):PostMapRequestHandler 创建页面对象:创建 最终处理当前http请求的 Handler 实例: 第一从HttpContext中获取当前的PR Handler ,Create

    (9):PostAcquireRequestState 获取Session

    (10)PostAcquireRequestState 获得Session

    (11)PreRequestHandlerExecute:准备执行页面对象
    执行页面对象的ProcessRequest方法

    (12)PostRequestHandlerExecute 执行完页面对象了

    (13)ReleaseRequestState 释放请求状态

    (14)PostReleaseRequestState 已释放请求状态

    (15)UpdateRequestCache 更新缓存

    (16)PostUpdateRequestCache 已更新缓存

    (17)LogRequest 日志记录

    (18)PostLogRequest 已完成日志

    (19)EndRequest 完成、

  • 相关阅读:
    通信编程:WSAEventSelect 模型通信
    VMware 安装 Red Hat 6 虚拟机
    通信编程:Select 模型通信
    Android:隐式 Intent 调用标准 Action
    Android:显式 Intent
    Linux(CentOS)用户修改密码有效期
    linux 系统中断信息
    qt udp 聊天
    docker更改镜像存储位置
    通过dockerfile构建singularity镜像
  • 原文地址:https://www.cnblogs.com/haofaner/p/5892581.html
Copyright © 2011-2022 走看看