SpringMVC是一种基于 Java 实现的 MVC 设计模型的请求驱动类型的轻量级 Web 框架, 属于 SpringFrameWork 的后续产品, 已经融合在 Spring Web Flow 里。
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 进行 Web 开发时, 可以选择使用 Spring MVC 框架或者其他MVC框架, 如 Struts2 等
Spring MVC 已经成为目前最主流的 MVC 框架之一, 并且随着 Spring 3.0 的发布, 全面超越 Struts2, 成为最优秀的 MVC 框架。
它通过一套注解, 让一个简单的 Java 类成为处理请求的控制器, 而无需实现任何接口。同时它还支持 RESTful 编程风格的请求。
SpringMVC 的底层仍然是基于 Servlet 来实现的
SpringMVC的优势
- 清晰的角色划分
- 前端控制器( DispatcherServlet )
- 请求到处理器映射( HandlerMapping )
- 处理器适配器( HandlerApapter )
- 视图解析器( ViewResolver )
- 处理器或页面控制( Controller )
- 验证器( Validator )
- 命令对象( Command 即: 请求参数绑定到的对象)
- 表单对象( Form Object 即: 提供给表单展示和提交到的对象)
- 分工明确, 而且扩展点相当灵活, 可以很容易扩展
- 由于命令对象就是一个POJO, 无需继承框架特定API, 可以使用命令对象直接作为业务对象
- 和 Spring 其他框架无缝集成, 是其他 Web 框架所不具备的
- 可适配, 通过 HandlerAdapter 可以支持任意的类作为处理器
- 可定制性, HandlerMapping、ViewResolver 等能够非常简单的定制
- 功能强大的数据验证、格式化、绑定机制。
- 利用 Spring 提供的 Mock 对象能够非常简单的进行 Web 层单元测试
- 本地化、主题的解析的支持, 使我们更容易进行国际化和主题的切换
- 强大的 JSP 标签库, 使 JSP 编写更容易……