图片取自:《SSM开发实战教程》
Spring MVC工作流程如下。
(1)浏览器向服务端提交请求,请求会被核心控制器DispatcherServlet拦截。
(2)核心控制器将请求转给处理器映射器HandlerMapping。
(3)处理器映射器HandlerMapping会根据请求,找到处理该请求的具体的处理器,并将其封装为处理器执行链后返回给核心控制器DispatcherServlet。
(4)核心控制器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器HandlerAdapter。
(5)处理器适配器HandlerAdapter调用执行处理器Controller。
(6)处理器Controller将处理结果及要跳转的视图封装到一个对象ModelAndView中,并将其返回给处理器适配器HandlerAdapter。
(7)处理器适配器HandlerAdapter直接将结果返回给核心控制器。
(8)核心控制器调用视图解析器 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象View。
(9)视图解析器ViewResolver将封装了的视图对象View返回给核心控制器DispatcherServlet,到此一个流程结束。
(10)核心控制器DispatcherServlet调用视图对象View,让其自己进行数据填充,形成响应对象。
(11)核心控制器把填充好数据的View响应给浏览器。