SpringMVC 框架
SpringMVC 框架是什么


从以上的框架图中,我们可以很清晰的看出:Springmvc 是一个基于 mvc 的 web 框架,并且它是 spring 框架的一个模块。由此,我们在开发的过程中,SpringMVC 和 spring 无需通过中间整合层进行整合。
mvc 在 b/s 系统下的应用
mvc 是一个设计模式,mvc 在 b/s 系统下的应用,如下图:

SpringMVC 框架
SpringMVC 框架,用户发出一个请求时,处理流程如下图:

根据以上处理流程图,总结如下:
- 发起请求到前端控制器 (DispatcherServlet);
- 前端控制器请求 HandlerMapping 查找 Handler 可以根据 xml 配置、注解进行查找 (DispatcherServlet);
- 处理器映射器 HandlerMapping 向前端控制器返回 Handler;
- 前端控制器调用处理器适配器去执行 Handler;
- 处理器适配器去执行 Handler;
- Handler 执行完成给适配器返回 ModelAndView;
- 处理器适配器向前端控制器返回 ModelAndView,ModelAndView 是 SpringMVC 框架的一个底层对象,包括 Model 和 view;
- 前端控制器请求视图解析器去进行视图解析根据逻辑视图名解析成真正的视图 (jsp);
- 视图解析器向前端控制器返回 View;
- 前端控制器进行视图渲染视图渲染将模型数据 (在 ModelAndView 对象中) 填充到 request 域;
- 前端控制器向用户响应结果。
在这个流程中所涉及到组件:
- 前端控制器 DispatcherServlet(不需要程序员开发)
作用:接收请求,响应结果,相当于转发器,中央处理器,有了 DispatcherServlet 减少了其它组件之间的耦合度。 - 处理器映射器 HandlerMapping (不需要程序员开发)
作用:根据请求的 url 查找 Handler - 处理器适配器 HandlerAdapter
作用:按照特定规则(HandlerAdapter 要求的规则)去执行 Handler - 处理器 Handler (需要程序员开发)
注意:编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行 Handler - 视图解析器 View resolver (不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view) - 视图 View (需要程序员开发 jsp)
View 是一个接口,实现类支持不同的 View 类型(jsp、freemarker、pdf…)