首页 > 其他分享 >springMVC的工作流程

springMVC的工作流程

时间:2022-10-09 19:15:28浏览次数:50  
标签:springMVC 流程 视图 工作 Handler 处理器 DispatcherServlet 适配器 View

一.springMVC的常用组件

1)DispatcherServlet

是一种前端控制器,由框架提供。

作用:统一处理请求和响应。除此之外还是整个流程控制的中心,由 DispatcherServlet 来调用其他组件,处理用户的请求

2)HandlerMapping

处理器映射器,由框架提供。

作用:根据请求的 url、method 等信息来查找具体的 Handler(一般来讲是Controller)

3)Handler(一般来讲是Controller)

处理器,注意,这个需由工程师自己开发。

作用:在 DispatcherServlet 的控制下,Handler对具体的用户请求进行处理

4)HandlerAdapter

处理器适配器 ,由框架提供。

作用:根据映射器找到的处理器 Handler 信息,按照特定的规则去执行相关的处理器 Handler。

小结:

Handler 是用来干活的工具;

HandlerMapping 用于根据需要干的活找到相应的工具;

HandlerAdapter 是使用工具干活的人。详细讲解可以看这篇博客(115条消息) SpringMVC 处理器适配器详解_aFa攻防实验室的博客-CSDN博客_处理器适配器

5)ViewResolver

视图解析器,由框架提供。

作用: ViewResolver 负责将处理结果生成 View 视图。 ViewResolver 首先根据逻辑视图名解析成物理图名,即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。

6)View

视图,工程师自己开发

作用:View接口的职责就是接收model对象、Request对象、Response对象,并渲染输出结果给Response对象。
二. springMVC的工作流程

 

 

具体的流程:

1. 用户通过浏览器发起 HttpRequest 请求到前端控制器 (DispatcherServlet)。

2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。

3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet

4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个

5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller

6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)

7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕

8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象

9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet

10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)

11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

标签:springMVC,流程,视图,工作,Handler,处理器,DispatcherServlet,适配器,View
From: https://www.cnblogs.com/ldddd/p/16773307.html

相关文章

  • SpringMVC之参数验证
    SpringMVC之参数验证目录SpringMVC之参数验证一、为什么使用参数验证1.1、参数验证作用二、怎么使用参数验证2.1、小结三、具体操作流程3.1、在pojo类中添加需要使用的注......
  • 激光加工运动控制原理——振镜工作原理
    1.振镜工作原理 激光振镜是一种专门用于激光加工领域的特殊的运动器件,它靠两个振镜反射激光,形成 XY 平面的运动。激光振镜不同于一般的电机,激光振镜具有非常小的惯量,......
  • Ozone-适用于各种工作负载的灵活高效的存储系统
    ApacheOzone是一种分布式、可扩展和高性能的对象存储,可与Cloudera数据平台(CDP)一起使用,可以扩展到数十亿个不同大小的对象。它被设计为原生的对象存储,可提供极高的规模......
  • SpringMVC
    SpringMVC:https://www.cnblogs.com/henuliulei/p/14643052.html作用:1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行......
  • 一、注册流程梳理及代码封装-14
    #编码#coding=utf-8#浏览器驱动包fromseleniumimportwebdriver#时间包importtime#引入随机数生成包importrandom#使用pip库进行图片解析包/取图片......
  • Spring、springboot、springMVC、JPA、SpringData、springCloud的概述
    https://blog.csdn.net/qq_51308214/article/details/125165747Spring框架是Java平台上的一种开源应用框架, Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了......
  • 源码角度了解Skywalking之服务端OAP的启动流程
    源码角度了解Skywalking之服务端OAP的启动流程Skywalking的服务端OAP的逻辑对应oap-server模块,入口是server-starter子模块的OAPServerStartUp类,直接调用了server-bootstra......
  • 开机启动流程
    目录开机启动流程CentOS6开机流程CentOS7开机流程CentOS7进入单用户模式-修改root密码CentOS7进入单用户模式-修改默认运行级别救援模式案例1-系统扇区损坏(前512字节......
  • RNA-seq | 转录组标准分析流程和常用工具软件介绍
    笔记内容摘要:RNA-seq转录组基础知识与标准分析流程,简单记录学习过程。转录组分析是对样本转录产物RNA的深入挖掘研究。通常情况下,植物的表型差异可能由许多因素控制,其中......
  • SpringMVC
    创建maven的父工程新建父工程删除所有不需要的东西,只留下pom.xml在pom.xml中导入需要的依赖<dependency><groupId>junit</groupId><artifactId>junit</......