Spring MVC工作流程
执行流程
- 浏览器发送请求,前端控制区
DispatcherServlet
拦截该请求;
DispatcherServlet
拦截到请求后,对请求 URL 进行解析,得到请求资源标识符 URI,根据 URI 调用 HandlerMapping
后获取对应 Handler
;
DispatcherServlet
拿到 Handler
之后,找到 HandlerAdapter
,通过它来访问 Handler
,并执行处理器;
- 执行
Handler
的逻辑,返回一个 ModelAndView
对象给 DispatcherServlet
;
- 然后
DispatcherServlet
请求 ViewResolver
解析视图,根据逻辑视图名解析真正的 View
;
- 然后
ViewResolver
将解析后的 View
返回给 DispatcherServlet
,然后对 View
进行渲染;
- 然后由
DispatcherServlet
响应视图给浏览器;
核心组件
DispatcherServlet
:核心组件,前端控制器,也叫中央控制器,由它来调度相关组件,用于接收请求、响应结果,相当于转发器,有了DispatcherServlet
就减少了其他组件之间的耦合度;
HandlerMapping
:处理器映射器,根据 URL 路径映射到不同的 Handler
;
HandlerAdapter
:处理器适配器,按照 HandlerAdapter
的规则来执行 Handler
;
Handler
:处理器,由我们自己根据业务进行开发;
ViewResolver
:视图解析器,将逻辑视图解析成具体的视图;
View
:一个接口,支持不同的视图类型;