1. MVC有什么用 ?
想要学习Spring MVC,就必须要知道MVC。一说MVC好像大家都很理解的样子,其实并不然,当然我们也不是做学术研究的,没必要抓着概念性的东西不放,理解它的意思就行了。
总得来说,MVC是一个很广的东西。它是一种架构型的设计模式,它本身不引入新的功能,只是帮助我们将开发的结构组织地更合理,使展示与模型分离,使流程控制逻辑和业务逻辑调用等与展示逻辑分离(有没有发现,面试官经常喜欢问MVC是什么有什么用)。
2. MVC和Web MVC的区别
M即Module,也就是模型,V即View,也就是视图,C即Controller,也就是控制器。
标准MVC:
Web MVC:
从上面两图可看出,在标准MVC中模型能主动推数据给视图进行更新(观察者模式),而在Web MVC中模型无法主动推数据给视图,如果用户想要更新视图,需要再发送一次请求。
3. 什么是Spring MVC ?
Spring MVC,其实就是Spring Web MVC,是一种基于Java的实现了Web MVC设计模式的轻量级Web框架,即使用了MVC架构的思想,将Web层解耦,帮助我们简化开发。
4. Spring MVC有什么用?
下面的话摘自网上,看看就行了,不是重点。
(1) 让我们能非常简单的设计出干净的 Web 层和薄薄的 Web 层;
(2) 进行更简洁的 Web 层的开发;
(3) 天生与 Spring 框架集成(如 IoC 容器、AOP 等);
(4) 提供强大的约定大于配置的契约式编程支持;
(5) 能简单的进行 Web 层的单元测试;
(6) 支持灵活的 URL 到页面控制器的映射;
(7) 非常容易与其他视图技术集成,如 Velocity、FreeMarker 等等,因为模型数据不放在特定的 API 里,而是放在一个 Model 里(Map 数据结构实现,因此很容易被其他框架使用);
(8) 非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的 API;
(9) 提供一套强大的 JSP 标签库,简化 JSP 开发;
(10) 支持灵活的本地化、主题等解析;
(11) 更加简单的异常处理;
(12) 对静态资源的支持;
(13) 支持 Restful 风格。
这第一章,我简单说了说MVC和Spring MVC做为铺垫,下面的章节才开始真正的深挖。