前言:

    突然怎么也想不起来  springMvc REST 请求的返回  类型了!   (尴尬+究竟)  然后本着 方便的想法 百度了一下

发现了个问题,大家在写      springMvc REST 的文档 和记录或者笔记的时候 。

只写到了 符合 REST 风格的 请求 ,而 响应信息 完全是 传统的 主体数据传递 。然而这并非 REST响应的 风格啊 !!!!

下面把自己整理的笔记发上来

关于MVC REST 请求的方式

格式1

    @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
@PathVariable Long itemCatId)
{ }
格式2 @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
@PathVariable("itemCatId") Long itemCatId)
{ } 格式3
@RequestMapping(value = "/destroy/{ConsumerID:^[0-9]*.*@[0-9]*}", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
@ResponseBody
public ResponseEntity<String> destroyMqConsumer(@PathVariable String ConsumerID)
{ }
格式4 @RequestMapping(value = "{itemCatId}", method = RequestMethod.POST)
public ResponseEntity<Void> saveItemParam(@PathVariable("itemCatId") Long itemCatId,
@RequestParam("paramData") String paramDate)
{
} REST 响应的方式
try
{
TbItemParam queryitemParam = new TbItemParam();
queryitemParam.setItemCatId(itemCatId);
return ResponseEntity.ok(queryitemParam); // 状态码是 200
return ResponseEntity.status(HttpStatus.CREATED).build(); // 状态码是 200 不返回 实体数据
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(queryitemParam); // 状态码是 200 返回 实体数据
}
catch (Exception e)
{
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); // 状态码是 200 返回 实体数据 是null
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
// 状态码是 500
} 备注: 关于返回值是 List 的问题
建议自定义分装一个POJO @ResponseBody 注解的再次说明 该注解是通过请求头的带入的信息来 格式化对应的返回值的的!! produces = "application/json; charset=utf-8"
返回对象是一个 UTF-8格式的 JSON 对象 produces = "application/xml; charset=gbk"
返回对象是一个 gbk格式的 xml 对象 @RequestMapping("table")
@Controller
public class outTable
{ @RequestMapping(value = "/json", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
@ResponseBody
public ResponseEntity<Clientinfo> querylist()
{
Clientinfo c = new Clientinfo();
c.setClientflag("100");
c.setClientname("1001");
c.setCrmcode(1002);
c.setId(1);
return ResponseEntity.ok(c);
} @RequestMapping(value = "/xml", method = RequestMethod.GET, produces = "application/xml; charset=utf-8")
@ResponseBody
public ResponseEntity<Clientinfo> query()
{
Clientinfo c = new Clientinfo();
c.setClientflag("100");
c.setClientname("1001");
c.setCrmcode(1002);
c.setId(1);
return ResponseEntity.ok(c);
} }

springMvc REST 请求和响应的更多相关文章

  1. SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求

    请求或响应的中文乱码问题 tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题 tomcat10解决了get和post请求以及响应的中文乱码问题 考虑到实际 ...

  2. 学习SpringMVC必知必会(3)~springmvc的请求和响应

    一.处理器方法响应处理 ▷ Controller方法该怎么返回.Controller数据该怎么进行共享 返回void/ModelAndView/String 1.Controller方法返回void ...

  3. SSM-SpringMVC-19:SpringMVC中请求和响应的乱码解决

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 配置一道拦截器即可解决乱码 配置方式如下: 在web.xml中: <!--过滤器处理乱码--> ...

  4. Spring系列 SpringMVC的请求与数据响应

    Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...

  5. SpringBoot对比SpringMVC,SpringMVC 处理请求过程

    (问较多:1.SpringBoot对比SpringMVC.2.SpringMVC 处理请求过程.问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 S ...

  6. Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据

    SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比 ...

  7. SpringMVC探秘-请求之路

    SpringMVC探秘-请求之路 开始 今天来分析一下SpringMVC的原理,探究SpringMVC如何把请求传递到每个Controller的方法上,从Servlet到Controller,一个请求 ...

  8. Django底层剖析之一次请求到响应的整个流程

    As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...

  9. 初入网络系列笔记(4)HTTP请求和响应

    一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...

随机推荐

  1. Python中的Numpy

    引用Numpy import numpy as np 生成随机数据 # 200支股票 stock_cnt = 200 # 504个交易日 view_days = 504 # 生成服从正态分布:均值期望 ...

  2. php中var_dump、var_export和print_r的用法区别

    void var_dump ( mixed $expression [, mixed $... ] )此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值,通过缩进显示其结 ...

  3. Jenkins部分常用插件

  4. Python程序员鲜为人知但你应该知道的16个问题(转)

    add by zhj: 没找到原文出处,只能找到转载的,文中说有17个坑,其实是16个 全文如下 这篇文章主要介绍了Python程序员代码编写时应该避免的16个“坑”,也可以说成Python程序员代码 ...

  5. django中使用redis

    第一种 安装redis模块 1.1在app中定义一个redis的连接池的py文件 import redis POOL=redis.ConnectionPool(host='127.0.0.1',por ...

  6. 7.Git工作区和暂存区

    Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 1.工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的test文件夹就是一个工作区 ...

  7. 002-shell变量定义、使用、字符串、数组、注释

    一.变量定义 定义变量时,变量名不加美元符号($) name="lhx" 注意,变量名和等号之间不能有空格.同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线, ...

  8. 『HTML5挑战经典』是英雄就下100层-开源讲座(一)从天而降的英雄

    是英雄就下100层是一款经典的手机小游戏,以前是在诺基亚手机上十分有名.今天我们就用HTML5和lufylegend一步步地实现它. 一,准备工作 首先,你需要下载lufylegend,下载地址如下: ...

  9. 我的第一次NGS分析操作

    部分参考自:生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台 - 孟浩巍的文章 - 知乎 https://zhuanlan.zhihu.com/p/357114 ...

  10. vertical-align和line-height的深入应用

    vertical-align和line-height的深入应用 本文的重点是了解vertical-align和line-height的使用 涉及到的名词:基线,底端,行内框,行框,行间距,替换元素及非 ...