zoukankan      html  css  js  c++  java
  • ASP.NET MVC入门到精通——MVC请求管道

    https://www.cnblogs.com/jiekzou/p/4896315.html

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总

    ASP.NET MVC的请求管道和ASP.NET请求管道基本上一模一样,如果你对ASP.NET请求管道十分熟悉的话,你只要关注一下不同点。看懂下面两张图,你就基本上明了了,这两张图是从邹华栋博客上面取的。(说明:我不是给传智带盐的,这图确实画得通俗易懂)不明白的地方,用reflector工具查看MVC的源码,没其它的。.NET框架的源码里面几乎涉猎了各种设计模式。这一节的内容,我也不知道怎么说,都在图里面了,看图比直接用文字说明要明了得多,只是这些东西还是比较抽象的,如果你时间充裕,建议看下MVC的源码。怎么看?就找MVC框架引用到的那几个dll,用反编译工具看下就可以了,如果要深入,直接去官网下载源码看,反复看几遍,你就豁然开朗了,不过需要一定的C#基础。

    MVC19个管道事件:

    复制代码
    /*
    1.BeginRequest  开始处理请求
    2.AuthenticateRequest 授权验证请求,获取用户授权信息
    3.PostAuthenticateRequest 获取成功
    4.AunthorizeRequest 授权,一般来检查用户是否获得权限
    5.PostAuthorizeRequest 获得授权
    6.ResolveRequestCache 获取页面缓存结果(如果没有则执行)
    7.PostResolveRequestCache 已获取缓存
    8.PostMapRequestHandler 创建页面对象
    9.AcquireRequestState 获取Session -- 先判断当前页面对象是否实现了IRequiresSessionState接口,如果实现了,则从浏览器发来的请求报文头中获得SessionId,并到服务器的 Session池中获得对应的Session对象,最后赋值给 HttpContext的Session属性。
    10.PostAcquireRequestState 获得Session
    11.PreRequestHandlerExecute 准备执行页面对象
    ×执行页面对象的ProcessRequest方法(1.ashx,1.aspx),如果请求的是1.aspx,则会运行页面生命周期
    12.PostRequestHandlerExecute 执行完页面对象了
    13.ReleaseRequestState 释放请求状态
    14.PostReleaseRequestState 已释放请求状态
    15.UpdateReuqestCache 更新缓存
    16.PostUpdateRequestCache 已更新缓存
    17.LogRequest 日志记录
    18.PostLogRequest 已完成日志
    19.EndRequest 完成
    */
    复制代码

    这节纯理论的东西,只能自己慢慢悟。

  • 相关阅读:
    硬件加速器为人工智能应用服务
    js 获取指定字符串个数
    js 仿微信投诉—引入vue.js,拆分组件为单个js
    css 图片波浪效果
    svg path命令
    谷歌浏览器—打断点调试页面
    js 实现加载百分比效果
    js 实现纵向轮播
    css 图片高度自适应
    js 禁止/允许页面滚动
  • 原文地址:https://www.cnblogs.com/wfy680/p/12335885.html
Copyright © 2011-2022 走看看