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:一个接口,支持不同的视图类型;