`

spring mvc 3中的consumes

阅读更多
spring mvc 3中的consumes,其实就是当请求的HTTP 头是何种格式的时候,进行应对,
比如请求为application/xml,application/json,下面看个例子:

@Controller
public class ExampleController {

  @RequestMapping(value = "/test",
    method = RequestMethod.POST,
    consumes = "application/xml")
  public ResponseEntity<String> processXml(
    @RequestBody String requestBody){
    
    return new ResponseEntity<String>(
      "Handled application/xml request. Request body was: " 
      + requestBody, 
      new HttpHeaders(), 
      HttpStatus.OK);
  }
  
  @RequestMapping(value = "/test",
    method = RequestMethod.POST,
    consumes = "application/json")
  public ResponseEntity<String> processJson(
    @RequestBody String requestBody){
    
    return new ResponseEntity<String>(
      "Handled application/json request. Request body was: " 
      + requestBody, 
      new HttpHeaders(), 
      HttpStatus.OK);
  }
  
}


那么可以用curl发起两个不同的请求,首先是xml的:

curl -i -X POST -H "Content-Type: application/xml" \
-d "<root><element>value</element></root>" \
http://localhost:8080/springmvc/test

则输出:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 87
Date: Sat, 16 Mar 2013 16:40:15 GMT

Handled application/xml request.
Request body was:
<root><element>value</element></root>

如果是json请求的:
curl -i -X POST -H "Content-Type: application/json" \
-d '{ "root": { "element": "value" } }' \
http://localhost:8080/springmvc/test

则输出:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 85
Date: Sat, 16 Mar 2013 16:40:42 GMT

Handled application/json request.
Request body was:
{ "root": { "element": "value" } }
分享到:
评论

相关推荐

    Mastering Spring MVC 4(2015.09)源码

    在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。在这个"Mastering Spring MVC 4(2015.09)源码"中,我们可以深入理解这个框架的核心概念和实际应用。 首先,Spring MVC ...

    精通Spring MVC4

    Spring MVC通过@RequestMapping的produces和consumes属性,以及@Consumes和@Produces注解,支持构建符合REST原则的服务,能够处理JSON、XML等多种内容类型。 11. **模板引擎集成** Spring MVC可以轻松地与各种...

    Spring MVC3复杂表单终极解决办法

    本文将深入探讨Spring MVC3在处理复杂表单场景下的最佳实践。 首先,我们要理解什么是复杂表单。复杂表单通常涉及到多个关联对象的提交,比如用户信息与地址信息在一个表单中同时提交,或者订单与订单详情的关联...

    spring mvc maven mysql 增删改查

    在IT行业中,Spring MVC、Maven和MySQL是三个非常重要的技术组件,它们分别代表了Web应用的模型-视图-控制器框架、项目构建工具和关系型数据库管理系统。本篇文章将详细探讨这三个技术如何协同工作,实现一个基础的...

    spring3-miniweb.rar_spring json_spring3_spring3 mvc

    在这个名为"spring3-miniweb.rar"的压缩包中,我们关注的是如何在Spring 3中处理JSON数据,这在现代Web应用中非常常见,因为JSON是数据交换的首选格式。下面将详细解释Spring MVC中处理JSON的基本概念和实现步骤。 ...

    Spring3 MVC 深入研究

    本篇文章将深入探讨Spring3 MVC的核心概念、工作原理以及如何在实际项目中有效地利用它。 ### 1. Spring3 MVC架构 Spring3 MVC的架构基于请求驱动,它通过DispatcherServlet作为前端控制器,处理所有的HTTP请求。...

    Spring MVC数据校验.docx

    数据校验在Spring MVC中通常借助于Hibernate Validator实现,它提供了丰富的校验注解,如: - `@NotNull`:检查值是否为null。 - `@NotBlank`:检查字符串是否非空且非空白。 - `@NotEmpty`:检查集合、数组或Map...

    spring mvc

    Spring MVC 提供了一种清晰的方式来组织 Web 层逻辑,并且可以很容易地与 Spring 容器中的其他组件集成。 **特点:** - **灵活的配置**:Spring MVC 支持多种配置方式,包括 XML 和 Java 配置。 - **强大的请求处理...

    spring web mvc基础教程

    3. **配置Spring MVC** - 配置Spring MVC通常通过在web.xml中配置DispatcherServlet和Spring的配置文件来完成。 - 配置包括映射URL、指定配置文件路径等。 4. **模型与视图解析器** - 视图解析器如...

    spring-mvc详细的说明

    10. **RESTful支持**:Spring MVC通过`@RequestMapping`的`produces`和`consumes`属性支持RESTful风格的API,便于构建Web服务。 11. **模板引擎集成**:Spring MVC可以轻松集成各种模板引擎,如JSP、Thymeleaf、...

    spring mvc教程

    在提供的 "SpringMVC.ppt" 文件中,可能包含了关于 Spring MVC 的演示或教程,例如如何创建简单的 CRUD 应用,如何配置 DispatcherServlet,以及如何使用注解驱动的 Controller 和 Service。 通过这个教程,你可以...

    spring mvc基础

    ### Spring MVC 基础知识点详解 #### 一、MVC模式及其实现技术 **MVC**(Model-View-Controller)是一种软件架构模式,主要用于简化开发过程,提高代码的可维护性和可扩展性。它将应用程序分为三个主要部分:模型...

    测试springmvc3

    5. **RESTful 支持**:通过 `@RequestMapping` 注解的 `produces` 和 `consumes` 属性,Spring MVC 3 支持创建 RESTful 风格的服务,方便构建 Web API。 6. **MVC 注解配置**:`@EnableWebMvc` 和 `@Configuration`...

    Spring MVC之@RequestMapping详解

    在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。在处理HTTP请求时,@RequestMapping注解扮演着至关重要的角色,它负责将客户端的请求映射到控制器中的具体方法。本文将深入探讨@RequestMapping...

    springMVC使用手册.zip

    Spring MVC提供对RESTful风格的支持,可以通过@RequestMapping注解的produces和consumes属性指定返回内容类型和接受请求类型。 15. **异步处理** 使用@Async注解,可以在后台线程执行耗时操作,提高应用响应速度...

    Spring MVC--2.@RequestMapping 映射请求

    在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它用于处理HTTP请求映射,使得控制器类(Controller)中的方法能够与特定的URL路径关联起来。本篇文章将深入探讨`@RequestMapping`的使用、功能以及相关...

    spring-webmvc-4.1.2

    3. **注解驱动开发**:在4.1.2版本中,Spring支持了广泛的注解,如@Controller、@RequestMapping等,这极大地简化了配置文件,提高了开发效率。开发者可以直接在类或方法上使用这些注解来定义控制器及其处理路径。 ...

    使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务

    本文将深入探讨如何利用 Spring 3 MVC 中的 HttpMessageConverter 构建高效的 RESTful API。 1. **RESTful Web 服务基础** REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序。它...

    spring-mvc41:Spring MVC 4.1 示例

    3. **RESTful支持**:Spring MVC 4.1增强了对RESTful风格的支持,通过`@RequestMapping`注解的`produces`和`consumes`属性,可以指定HTTP请求和响应的MIME类型,更好地支持JSON、XML等数据格式的处理。 4. **异常...

Global site tag (gtag.js) - Google Analytics