一文拿捏SpringMVC的调用流程

SpringMVC的调用流程

1.核心元素:

  • DispatcherServlet(前端控制器)
  • HandlerMapping(处理器映射器)
  • HandlerAdapter(处理器适配器) ---> Handler(处理器)
  • ViewResolver(视图解析器 )---> view(视图)

2.调用流程

  1. 用户发送请求到前端控制器
  2. 前端控制器接收用户请求并交由处理器映射器进行映射处理
  3. 处理器映射器找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给前端控制器
  4. 前端控制器调用处理器适配器,适配具体的处理器(controller/handler)
  5. 处理器执行后生成ModelAndView对象并返回给前端控制器
  6. 前端控制器将拿到的ModelAndView对象交由视图解析器进行解析
  7. 视图解析器将解析后的视图(view)返回给前端控制器
  8. 前端控制器根据拿到的视图进行渲染(数据模型填充视图)
  9. 前端控制器响应用户请求

详细总图

相关推荐
q***61505 小时前
eclipse配置Spring
java·spring·eclipse
q***58196 小时前
Spring全家桶简介
java·后端·spring
凌波粒6 小时前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax
戮戮7 小时前
从 Spring @Retryable 到 Kafka 原生重试:消息重试方案的演进与最佳实践
spring·kafka·linq
麦兜*7 小时前
Redis内存消耗异常飙升?深入排查与Big Key/Hot Key的根治方案
jvm·数据库·spring boot·redis·spring·缓存
小七mod8 小时前
【Spring】Spring Boot自动配置的案例
java·spring boot·spring·自动配置·源码·ioc·aop
java干货8 小时前
Spring Boot 为什么“抛弃”了 spring.factories?
spring boot·python·spring
sg_knight8 小时前
RabbitMQ 中的预取值(prefetch)详解:如何真正提升消费端性能?
java·spring boot·spring·spring cloud·消息队列·rabbitmq·预取值
百***618710 小时前
Spring的构造注入
android·java·spring
zl97989915 小时前
SpringCloud-LoadBalancer负载均衡服务调用
spring·spring cloud·负载均衡