文章目录
SpringMVC工作流程
1.SpringMVC主要接口:
DispatcherServlet(前端控制器):
Spring提供的前端控制器,所有的请求都要经过它来统一的发出,在DispacherServlet将请求分发给处理器之前,需要借助Spring提供的HandlerMapping获取Handler.
HandlerMapping(处理器映射器):
处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成),将它们封装在HandlerExecutionChain对象中一并返回给DispatcherServlet(前端控制器)。
HandlerAdapter(处理器适配器):
DispatcherServlet(前端控制器)调用HandlerAdapter(处理器适配器), 经过适配调用具体的处理器(Controller, 也叫后端控制器).
Controller执行完成后给HandlerAdapter(处理器适配器)返回ModelAndView.
HandlerAdapter(处理器适配器)再将ModelAndView返回给DispatcherServlet(前端控制器).
ViewResolver(视图解析器):
DispatcherServlet(前端控制器)将ModelAndView发给ViewResolver(视图解析器),解析完成后返回具体的view.
DispatcherServlet(前端控制器)根据View进行渲染视图(即将模型数据填充至视图中). 响应用户
总结:
SpringMVC通过DispatcherServlet(前端控制器)来调用mvc的三大组件: Model,View,Controller目的是为了保证MVC的每个组件只与DispatcherServlet耦合, 而彼此之间独立运行,大大降低了程序的耦合性
其中最主要的组件是DispatcherServlet(前端控制器)
主要有以下几项工作:
- 拦截符合特定格式的URL请求
- 初始化DispatcherServlet上下文对应的WebApplicationContext, 并将其与业务层,持久层的WebApplicationContext建立关联
- 初始化SpringMVC的各个组件,并装配到DispatcherServlet中
2.SpringMVC工作流程:
- 用户发送请求到DispatcherServlet(前端控制器).
- DispatcherServlet(前端控制器)收到请求调用HandlerMapping(处理器映射器).
- HandlerMapping(处理器映射器)根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器,封装到HandlerExecutionChain对象中并返回给DispatcherServlet(前端控制器).
- DispatcherServlet(前端控制器)收到HandlerExecutionChain对象,请求HandlerMapping(处理器映射器)调用Handler(处理器).
- HandlerAdapter(处理器适配器)执行接收到的Handler(处理器).
- 执行完成之后返回一个ModelAndView,再由HandlerAdapter(处理器适配器)将ModelAndView返回给DispatcherServlet(前端控制器).
- DispatcherServlet(前端控制器)将收到的ModelAndView发送给ViewResolver(视图解析器)..
- ViewResolver(视图解析器)..解析后返回给DispatcherServlet(前端控制器)具体的view.
- DispatcherServlet(前端控制器)对收到的view进行渲染视图, 即将模型数据填充到视图中.
- DispatcherServlet(前端控制器)对用户进行响应.