详解SpringMVC执行流程[通俗易懂]

详解SpringMVC执行流程[通俗易懂]SpringMVC执行流程SpringMVC执行流程整体如下:执行流程分析(1)浏览器提交请求到中央调度器。(2)中央调度器直接将请求转给处理器映射器。(3)处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后返回给中央调度器。(4)中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。(5)处理器适配器调用执行处理器。(6)处理器将处理结果及要跳转的视图封装到一个对象ModelAndView中,并将其返回给处理器适配器。(7)处理器适配

大家好,又见面了,我是你们的朋友全栈君。

SpringMVC 执行流程

SpringMVC 执行流程整体如下:
{% asset_img mvc02.jpg %}

执行流程分析

(1)浏览器提交请求到中央调度器。
(2)中央调度器直接将请求转给处理器映射器。
(3)处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后返回给中央调度器。
(4)中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。
(5)处理器适配器调用执行处理器。
(6)处理器将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给处理器适配器。
(7)处理器适配器直接将结果返回给中央调度器。
(8)中央调度器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象。
(9)视图解析器将封装了的视图对象返回给中央调度器。
(10)中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
(11)中央调度器响应浏览器。

执行流程中的 API 简要说明

1. DispatcherServlet

中央调度器,也称为前端控制器,在 MVC 架构模式中充当控制器 C, DispatcherServlet 是整个流程的控制中心,由它调用诸如处理器映射器、处理器适配器、视图解析器等其它组件处理用户请求。 中央调度器的存在降低了组件之间的耦合度。

2. HandlerMapping

处理器映射器, 负责根据用户请求找到相应的将要执行的 Handler,即处理器。 即用于完成将用户请求映射为要处理该请求的处理器,并将处理器封装为处理器执行链传给中央调度器。

3. HandlAdapter

处理器适配器, 通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。 中央调度器会根据不同的处理器自动为处理器选择适配器,以执行处理器。

4. Handler

处理器,也称为后端控制器,在 DispatcherServlet 的控制下 Handler 调用 Service 层对具体的用户请求进行处理。由于 Handler 涉及到具体的用户业务请求,所以一般情况下需要程序员根据业务需求自己开发 Handler。

5. ViewResolver

视图解析器, 负责将处理结果生成 View 视图, ViewResolver 首先将逻辑视图名解析为物理视图名,即具体的页面地址,再生成 View 视图对象。最后将处理结果通过页面形式展示给用户。
SpringMVC 框架提供了很多的 View 视图类型,包括: JstlView、 RedirectView 等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

DispatcherServlet 默认配置

组件名称 默认值
处理器映射器 BeanNameUrlHandlerMappering
DefaultAnnotationHandlerMapping
处理器适配器 HttpRequestHandlerAdaper
SimpleControllerHandlerAdaper
AnnotationMethodHandlerAdaper
视图解析器 InternalResourceViewResolver
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154112.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AVX2指令集浮点乘法性能分析

    AVX2指令集浮点乘法性能分析AVX2指令集浮点乘法性能分析一、AVX2指令集介绍二、代码实现0.数据生成1.普通连乘2.AVX2指令集乘法:单精度浮点(float)3.AVX2指令集乘法:双精度浮点(double)三、性能测试测试环境计时方式测试内容进行性能测试第一次测试第二次测试四、总结个人猜测原因:一、AVX2指令集介绍AVX2是SIMD(单指令多数据流)指令集,支持在一个指令周期内同时对256位内存进行操作。包含乘法,加法,位运算等功能。下附Intel官网使用文档。Intel®IntrinsicsGuide我

    2022年5月30日
    38
  • RocketMQ的长轮询消费方式

    RocketMQ的长轮询消费方式1.Push推送方式(即Server端推送消息给client):当Server收到消息发送者发送过来的消息后,Server端主动把消息推送给client,这个方式实时性比较好,但是增加了Server的工作负担,对Server的性能造成影响;另外Client如果不能够及时处理Server推送的消息,也是很大的问题。2.Pull拉取方式(即Client从Server拉取消息):Client…

    2022年6月24日
    39
  • ideaIU-2021.5.3激活码【在线注册码/序列号/破解码】

    ideaIU-2021.5.3激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    39
  • Android Studio中 HAXM安装失败的问题(Intel HAXM installation failed. To install Intel HAXM follow the…)

    Android Studio中 HAXM安装失败的问题(Intel HAXM installation failed. To install Intel HAXM follow the…)AndroidStudio:IntelHAXMinstallationfailed.ToinstallIntelHAXMfollowtheinstructionsfoundat:xxxxHAXM:Thesystemrequirementsarenotsatisfied

    2022年6月28日
    288
  • 圣杯布局与双飞翼布局

    圣杯布局与双飞翼布局圣杯布局和双飞翼布局都是实现的三栏布局 两边的盒子宽度固定 中间盒子自适应 也就是我们常说的固比固布局 它们实现的效果是一样的 差别在于其实现的思想 圣杯布局的出现是来自于 alistpart 上的一篇文章 InSearchofth 比起双飞翼布局 它的起源不是源于对页面的形象表达 在西方 圣杯是表达 渴求之物 的意思 而双飞翼布局 源与淘宝的 UED 通过缩放页面就可以发

    2026年1月29日
    1
  • 郴州市高考一段录取率(郴州市第一中学高考喜报)

    很多家长关心郴州2020年最新的中学排名,选择一所好的中学尤为重要,本文小编整理了一些关于2020年郴州最新的中学排名相关数据,仅供参考。一、郴州中学排名前十名名单排名学校名称1临武县第一中学2湖南省资兴市立中学3宜章县第一中学4湖南省郴州市第一完全中学5汝城县一中6桂阳县第一中学7安仁县第一中学8郴州市第二中学9永兴县第一中学10桂阳县第三中学11桂东县第一中学12嘉禾县第一中学二、郴州中学排名…

    2022年4月12日
    348

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号