码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DispatcherServlet工作原理简介说明


    转自:
    DispatcherServlet工作原理简介说明

    下文笔者将讲述DispatcherServlet的工作流程,如下所示: 

    1. 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求
      DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到处理程序中
      处理程序映射配置在web应用程序的上下文中,是实现了HandlerMapping接口的Bean
      它负责为请求返回一个适当的处理程序(也就是Controller)
      处理程序映射通常根据请求的URL将请求映射到处理程序(Controller)
    2. 一旦DispatcherServlet选择了适当的控制器,它就会调用这个控制器来处理请求
    3. 控制器处理完请求后,会将模型和视图名(有时候是视图对象)返回给DispatcherServlet
      模型包含了控制器要传递给视图进行显示的属性
      如果返回的是视图名称,它会被解析成视图对象再进行呈现
      绑定模型和视图的基本类是ModelAndView
    4. 当DispatcherServlet接收到模型和视图名称时,它会将逻辑视图名称解析成视图对象再进行呈现
      DispatcherServlet从一个或者多个视图解析器中解析视图。视图解析器配置在Web应用程序上下文中,
      是实现了ViewResolver接口的Bean。它的任务是根据逻辑视图名称返回试图对象
    5. 一旦DispatcherServlet将视图名称解析称为试图对象,
      它就会呈现视图对象,并传递控制器返回的模型
      视图的任务是将模型属性展示给用户

    处理流程

    在配置好DispatcherServlet之后,当请求交由该DispatcherServlet处理时,其处理流程如下

      1. 构造WebApplicationContext被作为属性绑定到请求上以备控制器和其他元素使用
        绑定的默认key为DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE
      2. 绑定地区解析器到请求上以备解析地区时使用,比如生成视图和准备数据时等等v 如果不需要解析地区,则无需使用
      3. 绑定主题解析器到请求上以备视图等元素加载主题时使用
      4. 如果配置了文件流解析器,则会检测请求中是否包含文件流
        如果包含,则请求会被包装为MultipartHttpServletRequest供其他元素做进一步处理。这一部分将会在后面的章节中进行详细说明
      5. 搜索合适的处理器处理请求。找到的话,与该处理器相关联的执行链(前拦截器、后拦截器、控制器等)会被执行以准备模型数据或生成视图
      6. 如果返回了模型对象,下一步就会进行视图的渲染。如果没有任何模型对象返回
        例如因为安全的原因被前拦截器或后拦截器拦截了请求,那么就没有视图会生成,因为该请求已经结束了

  • 相关阅读:
    机器学习 day34(机器学习项目的完整周期、精确度和召回率、F1)
    CentOS7 设置 MySQL 主备同步
    使用 NumPy 及其相关库(如 pandas、scikit-learn 等)时,由于 NumPy 的版本不兼容或者某些依赖库与 NumPy 的版本不匹配
    VIT中的einops包详解
    竞赛选题 深度学习人体语义分割在弹幕防遮挡上的实现 - python
    c语言-浅谈指针(3)
    《Large Language Models for Generative Information Extraction: A Survey》阅读笔录
    [附源码]计算机毕业设计JAVAjsp电影院在线售票系统
    注意力屏蔽(Attention Masking)在Transformer中的作用 【gpt学习记录】
    【图像隐藏】基于小波变换DWT实现数字水印嵌入提取含各类攻击附matlab代码
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127829893
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号