SpringMVC执行流程
SpringMVC请求流程
SpringMVC中处理请求最为重要的组件就是:DispatcherServlet,在处理用户请求时,SpringMVC底层的请求流程如下图:
-
用户端发起请求到后台服务器,请求被前端控制器(DispatcherServlet)拦截
-
前端控制器拦截到请求后,将请求信息交给处理器映射器(HandlerMapping)查找Handler
-
处理器映射器向前端控制器返回处理器(Handler)
-
前端控制器得到处理器后调用处理器适配器(HandlerAdapter)执行Handler
-
处理器适配器执行Handler
-
Handler根据路径找到对应的Controller方法执行完成后给适配器返回模型和视图对象(ModelAndView)
-
处理器适配器向前端控制器返回ModelAndView
-
前端控制器请求视图解析器(ViewResolver)进行视图解析
-
视图解析器向前端控制器返回view
-
前端控制器进行视图渲染
-
前端控制器向用户响应结果
组件说明
每一次用户端请求SpringMVC都会执行一遍这样的流程,在这一流程中存在几个SpringMVC中重要的组件:
-
DispatcherServlet (前端控制器)
用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。
-
HandlerMapping (处理器映射器)
HandlerMapping负责根据用户请求url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
-
HandlerAdapter (处理器适配器)
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
-
ViewResolver (视图解析器)
View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。