SpringMVC的核心组件:
- DispatcherServlet :核心处理器,负责统一接收请求,将请求分发至不同的控制器,并负责客户端响应。
- HandlerMapping :处理器映射器,根据 uri 去匹配查找能处理的 Handler ,并会将请求涉及到的拦截器和 Handler 一起封装。
- HandlerAdapter :处理器适配器,根据 HandlerMapping 找到的 Handler ,适配执行对应的 Handler 。
- Handler :请求处理器,处理实际请求的处理器。
- ViewResolver :视图解析器,根据 Handler 返回的逻辑视图名称,解析并渲染真正的视图文件,并传递给 DispatcherServlet 响应至客户端。
SpringMVC的执行流程:
1.客户端(浏览器)发送请求,统一由 DispatcherServlet 拦截处理请求。
2. DispatcherServlet 根据请求信息调用 HandlerMapping 。 HandlerMapping 根据 uri 匹配查找能处理的 Handler (也就是我们定义的 Controller 控制器),并会将请求涉及到的拦截器和 Handler 一起封装。
3. DispatcherServlet 调用 HandlerAdapter 适配执行 Handler 。
4. Handler 完成对用户请求的处理后,会返回一个 ModelAndView 模型视图对象给 DispatcherServlet 。 ModelAndView 中包含了数据模型以及相应的视图信息。 Model 是返回的数据对象, View 是 View 视图的逻辑名称。
5. ViewResolver 会根据逻辑 View 名称查找并解析实际的 View 视图文件,并根据 DispaterServlet 返回的Model数据模型传给 View 视图文件,进行渲染执行,产生响应结果。
6.DispatcherServlet负责将响应结果,输出至客户端浏览器。