一、大概流程 当用户使用浏览器发送请求时(例如:http://localhost:8080/hello),请求会被我们web.xml配置文件中的DispatcherServlet(前端控制器) 截获,然后根据springmvc配置文件中的HandlerMapping(处理器映射器) 找到响应请求的Handler处理器(Controller)(我们编写的controller层的类)。Controller处理完请求后,返回ModelAndView对象。该对象会告诉DispatcherServlet(前端控制器) 哪一个视图进行展示DispatcherServlet(前端控制器) ,根据springmvc配置文件中的ViewResolver(视图解析器) 把Handler处理器(Controller) 中返回的逻辑视图名渲染成真正的页面呈现在页面。
二、详细步骤
- 用户通过客户端给服务器发送一个请求,该请求会被前端控制器 拦截
- 前端控制器命令处理器映射器 去查找Handler处理器(根据XML配置文件或注解)
- 处理器映射器 找到了Handler处理器后,生成Handler处理器的对象和Handler处理器的拦截器
- 前端控制器命令处理器适配器 去执行Handler处理器
- Handler处理器执行完毕后,给处理器适配器 返回ModerAndView对象(SpringMVC底层对象),该对象包含了Model数据模型和View视图信息
- 处理器适配器 将ModerAndView对象返回给前端控制器
- 前端控制器得到该对象,选择一个合适的视图解析器对视图进行解析,反馈给前端控制器
- 前端控制器接收到View视图后,进行视图渲染,将模型数据填充到request域中,向用户响应结果
文章图片
- 前端控制器(DispatcherServlet)
- 处理器映射器(HandlerMapping)
- 处理器适配器(HandlerAdapter)
- 视图解析器(ViewResolver)
- Handler处理器(Controller)
推荐阅读
- java|SpringMVC-核心组件
- 技术交流|#SpringMvc 了解请求处理的流程,简化说明(图解)
- java|SpringMvc请求流程详解及核心组件(面试题)
- Spring|Spring MVC学习(3)—Spring MVC中的核心组件以及请求的执行流程
- python|他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!
- javascript|性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时-Bun.js
- Java刷题记录|【刷题记录15】Java工程师丨腾讯面试真题(3)
- 编程语言|介绍 Docker 的多阶段构建功能
- Java基础-从0到1|【一起学Java-第八篇】Java语言类的特性详解