一、springMVC的各个组件
前端控制器(DispatcherServlet):主要负责捕获来自客户端的请求和调度各个组件。
处理器映射器(HandlerMapping):根据url查找后端控制器Handler。
处理器适配器(HandlerAdapter):执行后端控制器(Handler),拿到后端控制器返回的结果ModelAndView后将结果返回给前端控制器DispatcherServlet。
后端控制器(处理器)(Handler):主要负责处理前端请求,完成业务逻辑,生成ModelAndView对象返回给HandlerAdapter。
视图解析器(ViewResolver):主要负责将从DispatcherServlet中拿到的ModelAndView对象进行解析,生成View对象返回给DispatcherServlet。
二、springMVC的执行流程
1.客户端浏览器向前端控制器(DispatcherServlet)发出请求。
2.DispatcherServlet接收到请求后,调用处理器映射器(HandlerMapping)。
3.HandlerMapping根据请求url查找相应的处理器(Handler,也称后端控制器),返回处理器对象(Handler),并且如果有处理器拦截器(HandlerInterceptor)的话,会将处理器对象(Handler)和处理器拦截器对象(HandlerInterceptor)一并返回给DispatcherServlet。
4.DispatcherServlet拿到这些信息后,会调用处理器适配器(HandlerAdapter),HandlerAdapter会执行Handler,Handler执行处理DispatcherServlet发来的请求,生成ModelAndView对象返回给HandlerAdapter。
5.HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
6.DispatcherServlet在拿到ModelAndView对象之后,将ModelAndView对象发给视图解析器(ViewResolver)。
7.ViewResolver将ModelAndView对象进行解析,生成View对象,将View对象返回给DispatcherServlet。
8.DispatcherServlet拿到View对象,对jsp页面进行渲染(将模型数据填充到视图中),将渲染后的页面呈现给用户。