摘要: Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

2.1、Spring Web MVC是什么

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

2.2、Spring Web MVC能帮我们做什么

√让我们能非常简单的设计出干净的Web层和薄薄的Web层;

√进行更简洁的Web层的开发;

√天生与Spring框架集成(如IoC容器、AOP等);

√提供强大的约定大于配置的契约式编程支持;

√能简单的进行Web层的单元测试;

√支持灵活的URL到页面控制器的映射;

√非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);

√非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;

√提供一套强大的JSP标签库,简化JSP开发;

√支持灵活的本地化、主题等解析;

√更加简单的异常处理;

√对静态资源的支持;

√支持Restful风格。

2.3、Spring Web MVC架构

Spring Web MVC框架也是一个基于请求驱动的Web框架,并且也使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理。首先让我们整体看一下Spring Web MVC处理请求的流程:

2.3.1、Spring Web MVC处理请求的流程

如图2-1

aaarticlea/jpeg;base64,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" alt="" />

图2-1

具体执行步骤如下:

1、 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;

2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图 2-1中的3、4、5步骤;

3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;

4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。

问题:

1、 请求如何给前端控制器?

2、 前端控制器如何根据请求信息选择页面控制器进行功能处理?

3、 如何支持多种页面控制器呢?

4、 如何页面控制器如何使用业务对象?

5、 页面控制器如何返回模型数据?

6、 前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染?

7、 不同的视图技术如何使用相应的模型数据?

首先我们知道有如上问题,那这些问题如何解决呢?请让我们先继续,在后边依次回答。

2.3.2、Spring Web MVC架构

1、Spring Web MVC核心架构图,如图2-2

aaarticlea/jpeg;base64,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" alt="" />

图2-2

架构图对应的DispatcherServlet核心代码如下:

    //前端控制器分派方法
protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpServletRequest processedRequest = request;
HandlerExecutionChain mappedHandler = null;
int interceptorIndex = -1; try {
ModelAndView mv;
boolean errorView = false; try {
//检查是否是请求是否是multipart(如文件上传),如果是将通过MultipartResolver解析
processedRequest = checkMultipart(request);
//步骤2、请求到处理器(页面控制器)的映射,通过HandlerMapping进行映射
mappedHandler = getHandler(processedRequest, false);
if (mappedHandler == null || mappedHandler.getHandler() == null) {
noHandlerFound(processedRequest, response);
return;
}
//步骤3、处理器适配,即将我们的处理器包装成相应的适配器(从而支持多种类型的处理器)
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler()); // 304 Not Modified缓存支持
//此处省略具体代码 // 执行处理器相关的拦截器的预处理(HandlerInterceptor.preHandle)
//此处省略具体代码 // 步骤4、由适配器执行处理器(调用处理器相应功能处理方法)
mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); // Do we need view name translation?
if (mv != null && !mv.hasView()) {
mv.setViewName(getDefaultViewName(request));
} // 执行处理器相关的拦截器的后处理(HandlerInterceptor.postHandle)
//此处省略具体代码
}
catch (ModelAndViewDefiningException ex) {
logger.debug("ModelAndViewDefiningException encountered", ex);
mv = ex.getModelAndView();
}
catch (Exception ex) {
Object handler = (mappedHandler != null ? mappedHandler.getHandler() : null);
mv = processHandlerException(processedRequest, response, handler, ex);
errorView = (mv != null);
} //步骤5 步骤6、解析视图并进行视图的渲染
//步骤5 由ViewResolver解析View(viewResolver.resolveViewName(viewName, locale))
//步骤6 视图在渲染时会把Model传入(view.render(mv.getModelInternal(), request, response);)
if (mv != null && !mv.wasCleared()) {
render(mv, processedRequest, response);
if (errorView) {
WebUtils.clearErrorRequestAttributes(request);
}
}
else {
if (logger.isDebugEnabled()) {
logger.debug("Null ModelAndView returned to DispatcherServlet with name '" + getServletName() +
"': assuming HandlerAdapter completed request handling");
}
} // 执行处理器相关的拦截器的完成后处理(HandlerInterceptor.afterCompletion)
//此处省略具体代码 catch (Exception ex) {
// Trigger after-completion for thrown exception.
triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, ex);
throw ex;
}
catch (Error err) {
ServletException ex = new NestedServletException("Handler processing failed", err);
// Trigger after-completion for thrown exception.
triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, ex);
throw ex;
} finally {
// Clean up any resources used by a multipart request.
if (processedRequest != request) {
cleanupMultipart(processedRequest);
}
}
}

核心架构的具体流程步骤如下:

1、 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

2、 DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个 HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;

3、 DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

4、 HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

5、 ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;

6、 View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;

7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

此处我们只是讲了核心流程,没有考虑拦截器、本地解析、文件上传解析等,后边再细述。

到此,再来看我们前边提出的问题:

1、 请求如何给前端控制器?这个应该在web.xml中进行部署描述,在HelloWorld中详细讲解。

2、 前端控制器如何根据请求信息选择页面控制器进行功能处理? 我们需要配置HandlerMapping进行映射

3、 如何支持多种页面控制器呢?配置HandlerAdapter从而支持多种类型的页面控制器

4、 如何页面控制器如何使用业务对象?可以预料到,肯定利用Spring IoC容器的依赖注入功能

5、 页面控制器如何返回模型数据?使用ModelAndView返回

6、 前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染? 使用ViewResolver进行解析

7、 不同的视图技术如何使用相应的模型数据? 因为Model是一个Map数据结构,很容易支持其他视图技术

在此我们可以看出具体的核心开发步骤:

1、 DispatcherServlet在web.xml中的部署描述,从而拦截请求到Spring Web MVC

2、 HandlerMapping的配置,从而将请求映射到处理器

3、 HandlerAdapter的配置,从而支持多种类型的处理器

4、 ViewResolver的配置,从而将逻辑视图名解析为具体视图技术

5、处理器(页面控制器)的配置,从而进行功能处理

上边的开发步骤我们会在Hello World中详细验证。

2.4、Spring Web MVC优势

1、清晰的角色划分:前端控制器(DispatcherServlet)、 请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或 页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。

2、分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;

3、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;

4、和Spring 其他框架无缝集成,是其它Web框架所不具备的;

5、可适配,通过HandlerAdapter可以支持任意的类作为处理器;

6、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;

7、功能强大的数据验证、格式化、绑定机制;

8、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;

9、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。

10、强大的JSP标签库,使JSP编写更容易。

………………还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。

到此我们已经简单的了解了Spring Web MVC,接下来让我们来个实例来具体使用下这个框架。

2.5、Hello World入门

2.5.1、准备开发环境和运行环境:

☆开发工具:eclipse

☆运行环境:tomcat6.0.20

☆工程:动态web工程(springmvc-chapter2

☆spring框架下载:

spring-framework-3.1.1.RELEASE-with-docs.zip

☆依赖jar包:

1、 Spring框架jar包:

为了简单,将spring-framework-3.1.1.RELEASE-with-docs.zip/dist/下的所有jar包拷贝到项目的WEB-INF/lib目录下;

2、 Spring框架依赖的jar包:

需要添加Apache commons logging日志,此处使用的是commons.logging-1.1.1.jar;

需要添加jstl标签库支持,此处使用的是jstl-1.1.2.jar和standard-1.1.2.jar;

2.5.2、前端控制器的配置

在我们的web.xml中添加如下配置:

    <servlet>
<servlet-name>chapter2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>chapter2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

load-on-startup表示启动容器时初始化该Servlet;

url-pattern表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

自 此请求已交给Spring Web MVC框架处理,因此我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB- INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/ chapter2-servlet.xml。

2.5.3、在Spring配置文件中配置HandlerMapping、HandlerAdapter

具体配置在WEB-INF/ chapter2-servlet.xml文件中:

    <!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射,如URL为 “上下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。

SimpleControllerHandlerAdapter: 表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。

2.5.4、在Spring配置文件中配置ViewResolver

具体配置在WEB-INF/ chapter2-servlet.xml文件中:

    <!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包;

prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;

    package cn.javass.chapter2.web.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
//1、收集参数、验证参数
//2、绑定参数到命令对象
//3、将命令对象传入业务对象进行业务处理
//4、选择下一个页面
ModelAndView mv = new ModelAndView();
//添加模型数据 可以是任意的POJO对象
mv.addObject("message", "Hello World!");
//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("hello");
return mv;
}
}

org.springframework.web.servlet.mvc.Controller:页面控制器/处理器必须实现Controller接口,注意别选错了;后边我们会学习其他的处理器实现方式;

public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) :功能处理方法,实现相应的功能处理,比如收集参数、验证参数、绑定参数到命令对象、将命令对象传入业务对象进行业务处理、最后返回 ModelAndView对象;

ModelAndView:包含了视图要实现的模型数据和逻辑视图名;“mv.addObject("message", "Hello World!");

” 表示添加模型数据,此处可以是任意POJO对象;“mv.setViewName("hello");”表示设置逻辑视图名为“hello”,视图解析器 会将其解析为具体的视图,如前边的视图解析器InternalResourceVi。wResolver会将其解析为“WEB-INF/jsp /hello.jsp”。

我们需要将其添加到Spring配置文件(WEB-INF/chapter2-servlet.xml),让其接受Spring IoC容器管理:

<!-- 处理器 -->
<bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController"/>

name="/hello":前边配置的BeanNameUrlHandlerMapping,表示如过请求的URL为 “上下文/hello”,则将会交给该Bean进行处理。

2.5.6、开发视图页面

创建 /WEB-INF/jsp/hello.jsp视图页面:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World</title>
</head>
<body>
${message}
</body>
</html>

${message}:表示显示由HelloWorldController处理器传过来的模型数据。

2.5.6、启动服务器运行测试

通过请求:http://localhost:9080/springmvc-chapter2/hello,如果页面输出“Hello World! ”就表明我们成功了!

2.5.7、运行流程分析

aaarticlea/jpeg;base64,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" alt="" />

图2-3

运行步骤:

1、 首先用户发送请求http://localhost:9080/springmvc-chapter2/hello——>web容器,web容器根据“/hello”路径映射到DispatcherServlet(url-pattern为/)进行处理;

2、 DispatcherServlet——>BeanNameUrlHandlerMapping进行请求到处理的映 射,BeanNameUrlHandlerMapping将“/hello”路径直接映射到名字为“/hello”的Bean进行处理,即 HelloWorldController,BeanNameUrlHandlerMapping将其包装为 HandlerExecutionChain(只包括HelloWorldController处理器,没有拦截器);

3、 DispatcherServlet——> SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter将 HandlerExecutionChain中的处理器(HelloWorldController)适配为 SimpleControllerHandlerAdapter;

4、 SimpleControllerHandlerAdapter——> HelloWorldController处理器功能处理方法的调用,SimpleControllerHandlerAdapter将会调用处理器的 handleRequest方法进行功能处理,该处理方法返回一个ModelAndView给DispatcherServlet;

5、 hello(ModelAndView的逻辑视图名)——>InternalResourceViewResolver, InternalResourceViewResolver使用JstlView,具体视图页面在/WEB-INF/jsp/hello.jsp;

6、 JstlView(/WEB-INF/jsp/hello.jsp)——>渲染,将在处理器传入的模型数据(message=HelloWorld!)在视图中展示出来;

7、 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

到此HelloWorld就完成了,步骤是不是有点多?而且回忆下我们主要进行了如下配置:

1、 前端控制器DispatcherServlet;

2、 HandlerMapping

3、 HandlerAdapter

4、 ViewResolver

5、 处理器/页面控制器

6、 视图

因此,接下来几章让我们详细看看这些配置,先从DispatcherServlet开始吧。

2.6、POST中文乱码解决方案

spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下:

    <filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

以后我们项目及所有页面的编码均为UTF-8。

2.7、Spring3.1新特性

一、Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。

二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:

需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

三、Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了更多的注解支持:

@CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;

@RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

@RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);

@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

@ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

@ExceptionHandler:注解式声明异常处理器;

@PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的URI;

四、还有比如:

JSR-303验证框架的无缝支持(通过@Valid注解定义验证元数据);

使用Spring 3开始的ConversionService进行类型转换(PropertyEditor依然有效),支持使用@NumberFormat 和 @DateTimeFormat来进行数字和日期的格式化;

HttpMessageConverter(Http输入/输出转换器,比如JSON、XML等的数据输出转换器);

ContentNegotiatingViewResolver,内容协商视图解析器,它还是视图解析器,只是它支持根据请求信息将同一模型数据以不同的视图方式展示(如json、xml、html等),RESTful架构风格中很重要的概念(同一资源,多种表现形式);

Spring 3 引入 一个 mvc XML的命名空间用于支持mvc配置,包括如:

<mvc:annotation-driven>:

自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter

支持Spring3的ConversionService自动注册

支持JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)

自 动注册相应的HttpMessageConverter(用于支持@RequestBody 和 @ResponseBody)(如XML输入输出转换器(只需将JAXP实现放置到classpath)、JSON输入输出转换器(只需将Jackson 实现放置到classpath))等。

<mvc:interceptors>:注册自定义的处理器拦截器;

<mvc:view-controller>:和ParameterizableViewController类似,收到相应请求后直接选择相应的视图;

<mvc:resources>:逻辑静态资源路径到物理静态资源路径的支持;

<mvc:default- servlet-handler>:当在web.xml 中DispatcherServlet使用<url-pattern>/</url-pattern> 映射时,能映射静态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给默认的Servlet来响应静态文件,否则报404找不到资源错误,)。

……等等。

五、Spring3.1新特性:

对Servlet 3.0的全面支持。

@EnableWebMvc:用于在基于Java类定义Bean配置中开启MVC支持,和XML中的<mvc:annotation-driven>功能一样;

新 的@Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping 和 处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射 DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter,提供更 多的扩展点,它们之间的区别我们在处理器映射一章介绍。

新 的@ExceptionHandler 注解支持类:ExceptionHandlerExceptionResolver来代替Spring3.0的 AnnotationMethodHandlerExceptionResolver,在异常处理器一章我们再详细讲解它们的区别。

@RequestMapping的"consumes" 和 "produces" 条件支持:用于支持@RequestBody 和 @ResponseBody,

1consumes指 定请求的内容是什么类型的内容,即本处理方法消费什么类型的数据,如consumes="application/json"表示JSON类型的内 容,Spring会根据相应的HttpMessageConverter进行请求内容区数据到@RequestBody注解的命令对象的转换;

2produces指 定生产什么类型的内容,如produces="application/json"表示JSON类型的内容,Spring的根据相应的 HttpMessageConverter进行请求内容区数据到@RequestBody注解的命令对象的转换,Spring会根据相应的 HttpMessageConverter进行模型数据(返回值)到JSON响应内容的转换

3以上内容,本章第×××节详述。

URI模板变量增强:URI模板变量可以直接绑定到@ModelAttribute指定的命令对象、@PathVariable方法参数在视图渲染之前被合并到模型数据中(除JSON序列化、XML混搭场景下)。

@Validated:JSR- 303的javax.validation.Valid一种变体(非JSR-303规范定义的,而是Spring自定义的),用于提供对Spring的验 证器(org.springframework.validation.Validator)支持,需要Hibernate Validator 4.2及更高版本支持;

@RequestPart:提 供对“multipart/form-data”请求的全面支持,支持Servlet 3.0文件上传(javax.servlet.http.Part)、支持内容的HttpMessageConverter(即根据请求头的 Content-Type,来判断内容区数据是什么类型,如JSON、XML,能自动转换为命令对象),比@RequestParam更强大(只能对请求 参数数据绑定,key-alue格式),而@RequestPart支持如JSON、XML内容区数据的绑定;详见本章的第×××节;

Flash 属性 和 RedirectAttribute:通 过FlashMap存储一个请求的输出,当进入另一个请求时作为该请求的输入,典型场景如重定向(POST-REDIRECT-GET模式,1、POST 时将下一次需要的数据放在FlashMap;2、重定向;3、通过GET访问重定向的地址,此时FlashMap会把1放到FlashMap的数据取出放 到请求中,并从FlashMap中删除;从而支持在两次请求之间保存数据并防止了重复表单提交)。

Spring Web MVC提供FlashMapManager用于管理FlashMap,默认使用SessionFlashMapManager,即数据默认存储在session中

SpringMVC学习总结(一)——SpringMVC入门的更多相关文章

  1. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  2. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  3. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  4. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmvc学习笔记10-springmvc注解开发之商品改动功能 需求 开发mappe ...

  5. SpringMVC学习笔记之---简单入门

    SpringMVC简单入门 (一)什么是MVC设计模式 (1)model:模型数据,业务逻辑 (3)view:呈现模型,与用户进行交互 (3)controller:负责接收并处理请求,响应客户端 (二 ...

  6. 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定

    众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...

  7. 【SpringMVC学习03】SpringMVC中注解和非注解方式下的映射器和适配器总结

    从上一篇的springmvc入门中已经看到,springmvc.xml中的配置了映射器和适配器,是使用非注解的方式来配置的,这是非注解方式的一种,这里再复习一下: 1. 非注解方式 1.1 处理器适配 ...

  8. springMVC学习笔记(一)-----springMVC原理

    一.什么是springmvc springMVC是spring框架的一个模块,springMVC和spring无需通过中间整合层进行开发. springMVC是一个基于mvc的web框架. Sprin ...

  9. [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.

    前言:今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二张 ...

随机推荐

  1. PHP中数组排序实例学习

    先介绍下php中用于数组排序的函数: 排序方法                           升序                             降序                 ...

  2. WordPress 主题开发 - (一) 前言 待翻译

    原文出自: http://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tutorial-2nd-edition/ THE TH ...

  3. 为Eclipse设置背景色

    1:打开Eclipse,在菜单栏找到Help—>Install new software.. 2:在打开的Work with中输入: Update Site - http://eclipse-c ...

  4. ubuntu 下dbus的环境搭建和使用

    从https://launchpad.net/ubuntu/+source/dbus/1.10.6-1ubuntu2下载需要的dbus包,然后解压,./configure make && ...

  5. .NET基础之--C#中判断空字符串的3种方法性能分析

    那么为什么if(a.Length==0)最快呢?因为整数判断等于最快,没有经过实例化等复杂的过程. 所以:建议大家判断字符串是否为空用 if(a.Length==0). 对于三种方法的评价: 1.if ...

  6. input 标签的监听事件总结

    最近在写一个手机端提交表单的项目,里面用了不少input标签,因为项目不太忙,所以,想做的完美点,但是遇到了一些问题,比如:页面中的必填项如果有至少一项为空,提交按钮就是不能提交的状态,所以需要对所有 ...

  7. Linux C C语言库的创建和调用

    C语言库的创建和调用 简介: 假如,你有一个庞大的工程,代码量达到数百兆甚至是数G,你经常会遇到好多重复或常用的地方.每次使用到这些地方时如果都重新写一份基本相同的代码,这当然可以,不过这样会大大地降 ...

  8. left join 过滤条件写在on后面和写在where 后面的区别

    create table t1(id int, feild int);insert into t1 values(1 , 1);insert into t1 values(1 , 2);insert ...

  9. Ubuntu下安装eclipse及PyDev插件注意事项

    一.安装eclipse前一定要先安装jdk 1.到http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880 ...

  10. Java 8 VM GC Tuning Guide Charter2

    第二章 Ergonomics Ergonomics is the process by which the Java Virtual Machine (JVM) and garbage collect ...