SpringMVC 是一个 MVC 的开源框架,SpringMVC 就相当于是 Struts2 加上 Spring 的整合,那么 SpringMVC 和 Spring 是什么样的关系呢?
百度百科上这样解释:SpringMVC 属于 Spring 的后续产品,其实就是 Spring 在原有的基础上,又提供了 Web 应用的 MVC 模块,以简单的把 SpringMVC 理解为是spring的一个模块。
接下来简单了解一下其工作原理,如下图:
- 用户发送请求至前端控制器 DispatcherServlet。
- DispatcherServlet 收到请求调用处理器映射器 HandlerMapping。
- 处理器映射器根据请求 url 找到具体的处理器,生成处理器执行链 HandlerExecutionChain (包括处理器对象和处理器拦截器)一并返回给 DispatcherServlet。
- DispatcherServlet 根据处理器 Handler 获取处理器适配器 HandlerAdapter。
- HandlerAdapter 经过适配调用具体的处理器(Controller,也叫后端控制器)。
- Controller 执行完成返回 ModelAndView。
- HandlerAdapter 将 Controller 执行结果 ModelAndView 返回给 DispatcherServlet。
- DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器。
- ViewReslover 解析后返回具体 View,这个 View 不是完整的,仅仅是一个页面(视图)名字,且没有后缀名。
- DispatcherServlet 根据 View 进行渲染视图(即将模型数据填充至视图中)。
- DispatcherServlet 响应用户。