关于Spring MVC 4,你需要知道的那些事

Spring MVC,又名Spring Web MVC,是一款主流的Web MVC框架,与Struts2框架类似,其主要目的是构建Web应用程序的全功能MVC模块,在View层和Controller层之间进行映射,完成View层和Model层之间的数据转换。

Spring MVC框架通过 DispatcherServlet 分发请求处理程序,包括可配置的映射,视图解决方案,语言,时区,主题以及上传文件。默认的处理器是基于 @Controller 和 @RequestMapping 注解处理各种方法。从 Spring 3.0开始, @Controller 机制允许用户通过 @PathVariable 注解及其它特性创建 RESTful Web站点和应用。

Spring Web MVC的一个关键原则是对扩展开放,对修改封闭,也即我们常说的“开闭原则”。所以Spring Web MVC核心类中的一些方法被标记为 final 类型的。

在 Spring Web MVC中,用户可以将任何对象作为命令或者请求访问的对象,而不需要实现特定framework框架的接口或基类。Spring的数据绑定机制是非常灵活的:比如,它能把类型匹配错误当做验证性错误处理而不是系统错误,这样错误类型就成为可评估的错误。尽管它像你不需要重复的业务对象的属性一样简单,表单中的无类型字符串简单处理无效的提交,或将字符串转为合法的类型。但它通常是可以直接绑定的业务对象。

Spring的解决方案通常是非常灵活的。 Controller 的职责是选择一个视图并数据映射到该视图上,当然 Controller 也能够直接写输出流来完成请求。 视图机制是高可配的,通过文件扩展名,Accept header头类型,bean名称,属性文件以及自定义的 ViewResolver实现。MVC中的 model是 Map 接口,它允许完整的抽象视图技术,可以与JSP,Velocity及Freemarker这样基于模板的渲染技术集成,也可以生成XML, JSON, Atom以及其它类型的内容。 Map 模型很容易转换成其它的格式,比如JSP请求属性,Velocity模板模型。

Spring MVC 4特性:

  1. 角色分离:controller, validator, command object, form object, model object, DispatherServlet, handler mapping, view resolver等等都可以单独实现。
  2. 强大简单的配置框架及应用类作为JavaBeans:配置包括简单的上下文引用,比如web前端控制器对业务对象以及验证器的引用。
  3. 适应性,灵活性,无侵入性:可以使用诸如@RequestParam, @RequestHeader, @Pathvariable这样的注解定义任意控制器的方法签名。
  4. 可重用业务代码:使用存在的业务对象当做command object或 form object,而不是继承框架的基类当做镜像。
  5. 可定制的绑定和验证机制:类型不匹配当做应用级别的验证错误,使用传值,本地化日期和数据绑定等替代将手动将对象转为字符串或转换为业务对象。
  6. 可定制的handler映射和视图机制。Handler映射和视图机制从简单的URL配置到复杂的,专门的解决策略都能处理。
  7. 灵活的模型转移机制:使用Map中key/value这样的模型转移机制很容易与其他视图技术集成。
  8. 支持国际化,支持时区,支持主题,支持JSP,支持JSTL,支持Velocity等。
  9. JSP标签库,又称Spring标签库支持数据绑定和主题。

关于Spring MVC,开发者使用最多的是其 DispatcherServlet转发,通过注解@Controller配置转发路径,并通过ModelAndView返回视图,这也是Web MVC的主要内容。Spring MVC各版本的内容相差不大,学会了一个版本的使用,其它版本也就会使用了。

时间: 2024-08-30 02:28:37

关于Spring MVC 4,你需要知道的那些事的相关文章

Swagger+ springfox +Spring mvc

简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单.这一次我将从零开始搭建一个工程来演示如何在Spring mvc中整合Swagger生成Restful接口文档. 新建工程 我们新建一个Maven工程,并添加Web Facet,工程结构如下图所

视图框架:Spring MVC 4.0(1)

目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.select标签 1.8.option标签 1.9.options标签 1.10.textarea.errors标签 1.11.hidden标签 1.12.radiobuttons 单选列表与checkboxs复选列表 二.视图解析器 2.1.ViewResolver视图解析器 2.2.链式视图解析器

Spring MVC HTTP请求数据绑定

package com.springmvc.controller; import com.springmvc.model.UserInfo; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Controller; import org.springframework.uti

关于spring mvc的配置文件

1. Web.xml <!--配置页面控制器--> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</par

[转] 使用Spring MVC构建REST风格WEB应用

原文地址:http://fancy888.iteye.com/blog/1629120 对于运行在网络上的MIS系统而言,处理数据的是整个系统的主要任务,翻开程序我们可以看到,80%以上的代码都在处理数据的CRUD操作.采用一种什么样的框架结构,能够使得处理数据的操作变得简单且易理解,这是大部分开发者尤其是架构设计者一直以来思考的一个问题. REST(Representational State Transfer)是一种编程风格,特别是针对网络应用的设计和开发,采用REST可以显著降低开发的复杂

Spring MVC 基础

Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层面上给我们帮助,无法在思考和过程上帮助我们,而我们很多人都不喜欢思考和尝试. 2.实现Web MVC的基础 实现Web MVC基础可以概括为1个前段控制器和2个映射. (1)前端控制器FrontController ASP.NET和JSP都是以Page路径和URL一一对应

spring MVC学习(一)---前端控制器

1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的结构图如下: 2.DispatcherServlet其实就是一个Servlet,它继承了HttpServlet这个抽象类. 先来看下该类在的位置: 为了使用它,你需要在你的web应用程序中的web.xml中配置一下,配置如下: <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class&

搭建基于spring MVC框架 + RESTful架构风格技术总结

实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的访问. 用RESTful架构的创建步骤: 1.创建一个全新的Web工程 2.导包,导入所需要的所有第三方jar包.(springMVC+Hibernate的基本包是必须的) 3.作配置,针对不同的项目需求和不同的搭建设计,开发人员可以按照自己的编码风格来设计符合项目开发具体 应该用多少篇配置文件.但是这几篇配置文件是必不可少的: 3-1.web.xml配置文件:最基本的配

Spring MVC简介

Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler.通过可配置的handler mappings.view resolution.locale以及theme resolution来处理请求并且

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>