学习交流群:817080571
SpringMVC执行流程
SpringMVC介绍
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架。
SpringMVC核心组件
DispatcherServlet(前置控制器)
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。
Handler(处理器)
可以理解成Conroller(控制器)
HandlerMapping(处理器映射器)
作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecutionChain 对象中。
HandlerInterceptor(处理器拦截器)
HandlerExecutionChain (处理器执行链)
它包括一个处理器、多个HandlerInterceptor拦截器
HandlerAdapter(处理器适配器)
调用具体的方法对用户发来的请求来进行处理
ModelAndView (模型和视图)
装载了模型数据和视图信息
ViewResolver (视图解析器)
将数据填充到视图中
流程介绍
流程图
流程分析
- 客户端发送请求,前置控制器(DispatcherServlet)接受请求
- 前置控制器将请求发送给处理器映射器(HandlerMapping)进行处理,返回一个处理器执行链(HandlerExecutionChain(=(处理器拦截器)HandlerIntercepter+(处理器)Handler))
- 前置控制器给处理器适配器(HandlerAdapter)发送请求,HandlerAdapter进行处理,执行Handler,返回ModelAndView
- 前置控制器将返回来的ModelAndView交给视图解析器(ViewResolver)进行解析,返回一个填充了数据的视图
- 最后将得来的视图返回给客服端做响应