前言:

    突然怎么也想不起来  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. java基础03变量和基本数据类型

    package cn.bdqn.test; /** * * @author 小豆腐 * * 变量:会变化的量?? * 一个数据在内存中存储空间的表示!在运行期间可以动态改变! * * 关键字:在jav ...

  2. react native 或 flutter 开发app

    react-native react native和原生Android/ios: https://www.oschina.net/news/97466/should-we-use-react-nati ...

  3. 2018 又一个假期 over 了

    五一假期三天  在家窝三天  早上起床仍感觉没休息好  其实确实没休息好  假期的时间总不愿意拿来补觉用.周末准备去体检,真心恐惧医院的味道,硬着头皮还得上啊.

  4. 对android的认识

    1.混乱的返回逻辑 看过Android Design的都知道,在Android上存在有back和up两套导航逻辑,一个控制应用间导航,一个控制应用内导航. 现在的问题就是这两种导航的方式,Google ...

  5. PL/SQL 创建用户及权限操作

    1.创建User create user user01 identified by user01, 2.赋予连接数据库的权限 grant connect to user01; 3.把user00的表E ...

  6. ACM-ICPC 2018 焦作赛区网络预赛 F. Modular Production Line (区间K覆盖-最小费用流)

    很明显的区间K覆盖模型,用费用流求解.只是这题N可达1e5,需要将点离散化. 建模方式步骤: 1.对权值为w的区间[u,v],加边id(u)->id(v+1),容量为1,费用为-w; 2.对所有 ...

  7. NGUI混合FingerGesture《卷一》 统一坐标

    问题背景 使用FingerGesture 获取触碰点2D坐标, 将该2D坐标赋值给NGUI元素,发现位置出现偏差. 排查思路 1:NGUI的 (0,0,0)默认位置是在屏幕正中心.而FingerGes ...

  8. iOS 绘制一个表盘时钟,秒针效果可以“扫秒/游走”

    最近自己 也尝试写了一个表盘时钟,初衷源于等车时候一个老奶奶问时间,我打开手机,时间数字对我来说相对敏感,但是老奶奶是看不清的,我想识别 还是看表盘 老远 看时针分针角度就可以识别当前时间. 于是我想 ...

  9. 什么是Java中的原子操作( atomic operations)

    1.啥是java的原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行. 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么 ...

  10. 验证APNS证书的有效性

    openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert xxx.pem