SpringMvc的执行流程
spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.返回给DispatcherServlet
3.DispatcherServlet将请求提交到目标Handle(Controller)
4.Handle(Controller)进行业务逻辑处理后(请求消息转换、数据转换、数据格式化、数据验证),会返回一个ModelAndView对象,其中view是视图名称,不是真正的视图对象
5.DispathcherServlet根据返回的ModelAndView,选择一个或多个合适的ViewResolver视图解析器进行处理,返回给DispathcherServlet一个真正视图对象View
6.DispathcherServlet根据模型数据和视图对象,进行视图渲染。
7.返回渲染后的视图,给用户做出响应
Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?
符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。