SpringMVC流程
- 当用户请求发送请求至前端控制器DispatcherServlet.
- 前端控制器DispatcherServlet收到请求调用HandlerMapping处理器映射器。
- 处理器映射器找到需要的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给前端控制器DispatcherServlet。
- 前端控制器DispatcherServlet调用处理器适配器HandlerAdapter.
- 处理器适配器HandlerAdapter经过适配调用相对应的处理器(Controller,也叫后端控制器)。
- Controller执行完以后返回一个ModelAndView.
- 处理器适配器HandlerAdapter将Controller返回的结果ModelAndView返回给前端控制器DispatcherServlet.
- 前端控制器DispatcherServlet将ModelAndView交给视图解析器ViewReslover。
- 视图解析器ViewReslover解析后返回具体的View.
- 前端控制器DispatcherServlet根据View进行渲染视图(将模型数据填充到数图中).
- 然后前端控制器DispatcherServlet将渲染后的视图响应给用户.
组件说明
以下组件通常使用框架提供实现:
- DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。
- HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
- HandlAdapter:通过扩展处理器适配器,支持更多类型的处理器。
- ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。