史上最强SpringMVC请求处理流程解析(通俗易懂)

一、大概流程

当用户使用浏览器发送请求时(例如:http://localhost:8080/hello),请求会被我们web.xml配置文件中的DispatcherServlet(前端控制器) 截获,然后根据springmvc配置文件中的HandlerMapping(处理器映射器) 找到响应请求的Handler处理器(Controller)(我们编写的controller层的类)。Controller处理完请求后,返回ModelAndView对象。该对象会告诉DispatcherServlet(前端控制器) 哪一个视图进行展示DispatcherServlet(前端控制器) ,根据springmvc配置文件中的ViewResolver(视图解析器)Handler处理器(Controller) 中返回的逻辑视图名渲染成真正的页面呈现在页面。

二、详细步骤

  1. 用户通过客户端给服务器发送一个请求,该请求会被前端控制器 拦截
  2. 前端控制器命令处理器映射器 去查找Handler处理器(根据XML配置文件或注解)
  3. 处理器映射器 找到了Handler处理器后,生成Handler处理器的对象Handler处理器的拦截器
  4. 前端控制器命令处理器适配器 去执行Handler处理器
  5. Handler处理器执行完毕后,给处理器适配器 返回ModerAndView对象(SpringMVC底层对象),该对象包含了Model数据模型和View视图信息
  6. 处理器适配器ModerAndView对象返回给前端控制器
  7. 前端控制器得到该对象,选择一个合适的视图解析器对视图进行解析,反馈给前端控制器
  8. 前端控制器接收到View视图后,进行视图渲染,将模型数据填充到request域中,向用户响应结果
    在这里插入图片描述

三、总结

这就是SpringMVC整个请求处理流程,其中用到的组件有:

  1. 前端控制器(DispatcherServlet)
  2. 处理器映射器(HandlerMapping)
  3. 处理器适配器(HandlerAdapter)
  4. 视图解析器(ViewResolver)
  5. Handler处理器(Controller)

其中前四个(除了Contoller)工作都是在框架内部执行的,我们不需要关心内部实现过程,我们只需要配置前端控制器,完成Controller中的业务处理,并在视图中展示相应信息即可!

猜你喜欢

转载自blog.csdn.net/weixin_46594796/article/details/112602591