1 Spring MVC概述
Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。Spring MVC的特点:
- 轻量
- 高效
- 与Spring兼容性好
- 功能强大。RESTful、数据验证、格式化、绑定机制、本地化、主题等
- 简洁灵活
2 Spring MVC功能
Spring MVC围绕DispatcherServlet设计。 DispatcherServlet的作用是将请求分发到不同的处理器。从Spring 2.5开始,使用Java 5或者以上版本的用户可以采用基于注解的Controller声明方式。官网上说Spring的Web模块提供了大量独特的功能,包括:
- 清晰的角色划分 :控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(form object)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、 处理器映射(handler mapping)、视图解析器(view resolver)等等。 每一个角色都可以由一个专门的对象来实现。
- 强大而直接的配置方式 :将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器(validator)的引用。
- 可适配、非侵入 :可以根据不同的应用场景,选择合适的控制器子类 (simple型、command型、form型、wizard型、multi-action型或者自定义),而不是从单一控制器 (比如Action/ActionForm)继承。
- 可重用的业务代码 :可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。
- 可定制的绑定(binding) 和验证(validation) :比如将类型不匹配作为应用级的验证错误, 这可以保存错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象, 需要手动解析它并转换到业务对象。
- 可定制的Handler Mapping和View Resolution :Spring提供从最简单的URL映射, 到复杂的、专用的定制策略。与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。
- 灵活的Model转换 :在Springweb框架中,使用基于Map的 键/值对来达到轻易地与各种视图技术的集成。
- 可定制的本地化和主题(Theme)解析 :支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等。
- 简单而强大的JSP标签库(Spring Tag Library) :支持包括诸如数据绑定和主题(Theme) 之类的许多功能。它提供在标记方面的最大灵活性。
- JSP表单标签库 :在Spring2.0中引入的表单标签库,使得在JSP中编写 表单更加容易。