虽然我认为在刚开始学一新技术的时候,看通篇大论的原理篇还不如写一个小例子来的实在些呢。
不过,在你按照前两篇文章中的步骤把框架搭建起来以后,再来看看原理,也不失为一个很好的方法,可以加深对所学东西的理解。
Spring Web MVC是什么
首先我们得先了解下Spring MVC到底是什么。
Spring Web MVC是一种基于Java实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。
Spring Web MVC框架就是一种MVC框架。其前端控制器是DispatcherServlet主要用于控制流程;应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Resolver-视图解析器进行视图的解析;页面控制器/动作跳转处理器为Controller接口;支持本地化解析、文件上传等;提供了十分灵活的数据校验、格式化和数据绑定机制;采用约定优于配置的契约式编程方式。
Spring Web MVC是一种基于Java实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。
Spring Web MVC框架就是一种MVC框架。其前端控制器是DispatcherServlet主要用于控制流程;应用控制器为Handler Mapping-处理器映射器进行处理器管理和View Resolver-视图解析器进行视图的解析;页面控制器/动作跳转处理器为Controller接口;支持本地化解析、文件上传等;提供了十分灵活的数据校验、格式化和数据绑定机制;采用约定优于配置的契约式编程方式。
Spring Web MVC特点
- 容易设计清爽干净的web层。
- 与Spring框架集成(IOC容器、AOP等)。
- 提供约定优于配置的契约式编程支持。
- 更加快捷、简单的单元测试。
- 灵活的URL到控制器的映射。
- 支持Rest风格。
- ............................
Spring Web MVC框架
Spring Web MVC框架也是一个基于驱动的MVC框架,通过实现Model-View-Controller模式很好的将数据、业务、展现进行分离。Spring Web MVC的设计是围绕前端控制器DispatcherServlet来展开的,DispatcherSerlvet负责将请求根据映射规则分发给相应控制器 (Controller),根据可配置的Handler mappings处理请求并转到相应的视图。Spring Web MVC的整体处理流程如下:

上图只是Spring MVC比较粗浅的执行过程,详细的执行过程在后续学习中进行讨论。由上图可知,Spring MVC大致的执行流程如下:
1、首先浏览器发送请求给前端控制器DispatcherServlet,DispatcherSerlvet根据请求信息,基于一定的原则选择合适的控制器进行处理并把 请求委托给它。
2、页面控制器接收到请求之后进行功能处理,首先需要收集、绑定请求参数到一个对象(命令对象),并进行验证,然后将该对象委托给业务对象进行处理(service层);业务对象处理之后控制器将返回一个ModelAndView(模型数据和逻辑视图名);
3、DispatcherServlet根据返回的逻辑视图名,选择合适的视图进行渲染(界面展示、资源加载),并把模型数据传入以便视图渲染。
4、前端控制器将响应返回个客户端浏览器。
到此我们对于Spring Web MVC的概念,以及其粗略的工作流程有了一个大致的了解。接下来搭建一个具体的实例来作为学习Spring Web MVC框架的开端吧。