在RestController中获取各种信息的方法
| 内容 | 获取方法 |
|---|---|
| URL中路径的一部分 | 首先需要在RequestMapping做映射, 之后在方法中可以通过注解使用映射的变量 @GetMapping("/{id}") public Student getStudent(@PathVariable("id") int id {} 可以写多个) |
| POST方法传递过来的Json | 给参数前加个@RequestBody注解, Spring会自动把POST的Request Body部分的Json转成方法声明的类。如果转化失败会返回4xx错误,表示请求参数有问题。 public Student updateOne(@RequestBody Student student) |
| POST方法传递的是表单数据 | 首先需要声明传入的是application/x-www-form-urlencoded的格式,可在RequestMapping增加consumes参数: @PostMapping(value="/students",consumes=MediaType.APPLICATION_FORM_URLECODED_VALUE) 在方法上增加参数,参数使用@RequestParam注解即可 public Object insert(@RequestParam(value="name", required=false) String name) 凡是可以通过HTTPServletRequest.getParameter(String)方法取到的值,包含表单提交的、QueryString附带的,都可以使用@RequestParam注解得到 默认request=true |
| QueryString的参数 | 使用@RequestParam注解, 通过参数获得, 例: public Object query(@RequestParam(value="page", required=false)int page) |
| Request Header | 可以使用@RequestHeader注解获取Request的头信息, 例: public ResultJson editCompany(@RequestHeader("user-agent") String userAgent) 注意: @RequestHeader后面的头名字不区分大小写, 但@RequestParam, @PathVariable等是区分大小写的。 如果RequestHeader后面不写参数, 会用后面的变量名替代。 |
| 获取cookie值 | 使用@CookieValue注解,和其他类似,除非为了兼容老现有客户端,新API里不建议使用cookie。 |
| 获取当前的Request & Response | 直接写参数, 例 public Object doSomething(HttpServletRequest request, HttpServletResponse response) |
| 获取当前用户 | 直接在方法上增加参数类型, 类型为: org.springframework.security.core.Authentication, 例: public Student deleteStudent(Authentication auth)参数auth内会储存当前用户信息。 |
| 文件上传 | 首先要设置consumes为multipart/form-data @PostMapping(value = "/files", consumes=MediaType.MULTIPART_FORM_DATA_VALUE) 在方法中写参数: public Map<String, Object> uploadFile(@RequestParam("file")MultipartFile file) 在方法中就可以直接使用MultipartFile中的流保存文件了。 |
以上整理自网易云课堂的葛香东老师所授的课程
在RestController中获取各种信息的方法的更多相关文章
- jsp中获取路径信息的方法
今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...
- 从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法
从BIRT报表文件中获取页面设置信息(页边距.纸张大小.输出方向)的方法 报表打印时,尤其是套打的报表,页面设置信息非常重要,比如页边距,纸张大小,输出方向等,而且每个报表的相关参数有可能不同 ...
- PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-comm ...
- PHP版微信第三方实现一键登录及获取用户信息的方法
本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请. 一开始你需要进入微信 ...
- 【Java/JDBC】利用ResultSetMetaData从数据库的某表中获取字段信息并存到csv文件
代码下载:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-2.rar 这篇还不够完善,请看更完善的续篇 ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- dede织梦栏目页和文章页中获取当前栏目名称方法
一般情况下,在dede织梦系统中列表页.栏目页和文章页中获取当前所在栏目名称只需要代码:{dede:type}[field:typename]{/dede:type}即可,不需要定义ID,默认的就是当 ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
随机推荐
- 【opencv源码解析】 二、 cvtColor
这里以CV_BGR2YUV_I420来讲 1. opencv244 core.cpp void cv::cvtColor( InputArray _src, OutputArray _dst, int ...
- vue入门:(模板语法与指令)
vuejs使用及HTML的模板语法,可以实现声明式将DOM绑定至底层VUE实例的数据.通过模板语法将数据渲染进DOM的系统,结合响应系统,在应用状态改变时,Vue能够计算出重新渲染组件的最小代价并应用 ...
- mysql 批量 insert 数据丢失问题
这两天发现mysql 批量insert 比如600条数据后,页面马上select就查询到580条,但是等几秒钟再查询就有600条(也有部分情况是永久只能查到580条了) 查看mybatis的日志发现循 ...
- centos7andcentos6初始化脚本
#!/bin/bash # get OS verison RELEASEVER=$(rpm -q --qf "%{Version}" $(rpm -q --whatprovides ...
- python之时间日期time
常用的时间函数如下获取当前日期:time.time()获取元组形式的时间戳:time.local(time.time())格式化日期的函数(基于元组的形式进行格式化):time.asctime(tim ...
- 解决办法:Message: 对实体 "useUnicode" 的引用必须以 ';' 分隔符结尾
Hibernate 5.3.1 INFO: HHH000206: hibernate.properties not foundException in thread "main" ...
- 在不同的Linux发行版上安装TFTP Server
http://www.davidsudjiman.info/2006/03/27/installing-and-setting-tftpd-in-ubuntu/ http://www.cybercit ...
- deep_learning_Function_One-host参数
在很多机器学习任务中,特征并不总是连续值,而有可能是分类值.比如星期类型,有星期一.星期二.…….星期日,比如浏览器类型有["uses Firefox", "uses C ...
- Redis Sentinel机制与用法说明
本文来自 https://www.cnblogs.com/zhoujinyi/p/5569462.html 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Red ...
- python自动生成excel(xlwt库)
下面代码使用web.py框架,其他框架都大同小异. # coding: utf- import web import json import datetime import xlwt import S ...