• 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 完成、

  • 相关阅读:
    win 下 docker 环境配置
    【译】PHP 内核 — 字符串管理
    Elasticsearch和Lucene的关系
    如何写出高性的SQL语句?
    Java 8
    Cause: java.sql.SQLSyntaxErrorException: ORA-01719: OR 或 IN 操作数中不允许外部联接运算符 (+)
    sql 使用 in 后数据量太大报错
    java8-求最小值(8中方法)
    Oracle 强制索引
    为什么新安装eclipse idea等环境,初次运行java程序,会弹出windows防火墙信息
  • 原文地址:https://www.cnblogs.com/haofaner/p/5892581.html
Copyright © 2020-2023  润新知