springMvc REST 请求和响应
前言:
突然怎么也想不起来 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 请求和响应的更多相关文章
- SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求
请求或响应的中文乱码问题 tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题 tomcat10解决了get和post请求以及响应的中文乱码问题 考虑到实际 ...
- 学习SpringMVC必知必会(3)~springmvc的请求和响应
一.处理器方法响应处理 ▷ Controller方法该怎么返回.Controller数据该怎么进行共享 返回void/ModelAndView/String 1.Controller方法返回void ...
- SSM-SpringMVC-19:SpringMVC中请求和响应的乱码解决
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 配置一道拦截器即可解决乱码 配置方式如下: 在web.xml中: <!--过滤器处理乱码--> ...
- Spring系列 SpringMVC的请求与数据响应
Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...
- SpringBoot对比SpringMVC,SpringMVC 处理请求过程
(问较多:1.SpringBoot对比SpringMVC.2.SpringMVC 处理请求过程.问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 S ...
- Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据
SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比 ...
- SpringMVC探秘-请求之路
SpringMVC探秘-请求之路 开始 今天来分析一下SpringMVC的原理,探究SpringMVC如何把请求传递到每个Controller的方法上,从Servlet到Controller,一个请求 ...
- Django底层剖析之一次请求到响应的整个流程
As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...
- 初入网络系列笔记(4)HTTP请求和响应
一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...
随机推荐
- intellij idea 主题更换(换黑底或白底)
更换主题: File-->setting-->Appearance&Behavior-->Appearance Intellij:白底黑字 Darcula:黑底白字
- django 前端传文件到后台项目目录
Html端: <form action="/student/upload" method="POST" enctype="multipart/f ...
- Linux系统性能调优之性能分析
1.Linux性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈):2)提供性能优化的方案(升级硬件?改进系统系统结构?):3)达到合理的硬件和软件配置:4)使系统资源使用达到最大的平衡.(一 ...
- Mybatis的MapperRegistry错误
1,如果mabtis的配置文件里mapper用的不是包扫描,而是: <mapper resource="com/vmpjin/mapper/OrdersMapper.xml" ...
- Spark如何写入HBase/Redis/MySQL/Kafka
一些概念 一个partition 对应一个task,一个task 必定存在于一个Executor,一个Executor 对应一个JVM. Partition 是一个可迭代数据集合 Task 本质是作用 ...
- PAT 1049 Counting Ones [难]
1049 Counting Ones (30 分) The task is simple: given any positive integer N, you are supposed to coun ...
- CCTV-2《遇见大咖》专访雷军----笔记记录
与央视记者约好两点采访,但因为公司会议拖到了三点.雷军对此表示抱歉,解释了一天的行程,并说:“今天不算密的,密的平均一天应该有十一个会.然后我现在基本每天中午饭,大概就是三分钟的时间.” 因为要上镜, ...
- [golang note] 内建类型
基础类型 √ golang内建基础类型有布尔类型.整数类型.浮点类型.复数类型.字符串类型.字符类型和错误类型. 复合类型 √ golang支持的复合类型有指针.数组.数组切片.字典.通道.结构体和接 ...
- (转)C语言中Exit函数的使用
C语言中Exit函数的使用 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如 ...
- delphi webbrowser 跨域访问
procedure IterateFrames(const AWB: IWebBrowser2);var Doc: IHTMLDocument2; Container: IOleContainer; ...