【SpringMVC】一文带你彻底搞懂SpringMVC的工作流程(最强详解!!)

目录

首先来说明一下,SpringMVC的各个组成部分

DispatcherServlet

HandlerMapping

Handler(通常就是Controller)

HandlerAdapter

ViewResolver

View

SpringMVC具体的工作流程


首先来说明一下,SpringMVC的各个组成部分

DispatcherServlet

是SpringMVC的核心部分,是一种前端控制器,由框架所提供

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

HandlerMapping

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

作用:根据请求的url、method等信息来查找具体的Handler(通俗讲------通常来说就是Controller

Handler(通常就是Controller)

处理器,注意------这个就是软件开发人员自己开发设计的部分

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

HandlerAdapter

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

作用:根据HandlerMapping所提供的Handler信息,会按照特定的规则去执行相关的处理器Handler
小结

  • Handler------是用来干活的工具
  • HandlerMapping------是根据需要干的活找到对应的工具
  • HandlerAdapter------是具体用工具干活的那个人

ViewResolver

视图解析器------由框架提供

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

View

视图------软件开发人员自己设计

作用:View接口的职责就是接收model对象、Request对象、Response对象,最后渲染输出结果返回给Response对象

SpringMVC具体的工作流程

以上就是SpringMVC的流程图

用文字描述就是以下:

1、用户将请求发送,由前端控制器DispatcherServlet来拦截并接收请求

2、前端控制器DispatcherServlet收到请求之后调用处理器映射器(HanlderMapping),区查找与请求对应的Handler

3、处理器映射器(HanlderMapping)找到具体的处理器(根据xml配置、注解等方式进行查找),返回一个处理器执行链(是一个包含处理器对象和拦截器(Interceptor)的对象【如果有拦截器的话】)

4、然后前端控制器DispatcherServlet调用了处理器适配器HandlerAdapter

5、处理器适配器会找到具体Handler的具体方法,并将获取到的参数执行完成之后将结果继续返回给DispatcherServlet(结果通常是ModelAndView)

6、然后前端控制器(DispatcherServlet)会调用视图解析器,并将ModelAndView传给它(ViewResolver)

7、视图解析器(ViewResolver)将获得的参数从逻辑视图转换为物理视图对象(View)返回给前端控制器(DispatcherServlet)

8、前端控制器(DispatcherServlet)调用物理视图进行渲染并返回。

9、前端控制器(DispatcherServlet)将渲染完毕的页面响应给用户

相关推荐
倔强的小石头_1 小时前
【C语言指南】函数指针深度解析
java·c语言·算法
kangkang-5 小时前
PC端基于SpringBoot架构控制无人机(三):系统架构设计
java·架构·无人机
界面开发小八哥7 小时前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(三)
java·ide·java-ee·myeclipse
idolyXyz7 小时前
[java: Cleaner]-一文述之
java
一碗谦谦粉7 小时前
Maven 依赖调解的两大原则
java·maven
netyeaxi8 小时前
Java:使用spring-boot + mybatis如何打印SQL日志?
java·spring·mybatis
收破烂的小熊猫~8 小时前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
小七mod8 小时前
【MyBatis】MyBatis与Spring和Spring Boot整合原理
spring boot·spring·mybatis
猴哥源码8 小时前
基于Java+SpringBoot的动物领养平台
java·spring boot
老任与码8 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba