首页 > 其他分享 >Spring中controller中关于GET和POST请求的参数接收

Spring中controller中关于GET和POST请求的参数接收

时间:2023-12-04 12:24:55浏览次数:29  
标签:请求 GET Spring ResponseResult value metrics controller 参数 name

Spring中controller中关于GET和POST请求的参数接收

Spring中controller中关于GET和POST请求的参数接收


GET请求
  • 参数用&符号连接在一起[/get?name=tom]
//无参
//没有任何参数的请求
@GetMapping(value = "/metrics/get")
@ApiOperation("get请求没有任何参数")
public ResponseResult get() {
    return ResponseResult.okResult ("GET请求无参");
}
//简单参数
//简单参数使用/metrics/getbyparam?name=%E9%A6%99%E6%A2%A8
@GetMapping(value = "/metrics/getbyparam")
@ApiOperation("get请求简单参数")
public ResponseResult getByParam(String name) {
	return ResponseResult.okResult ("获取到的参数为:" + name);
}
//多个简单参数
//多个简单参数使用&符号连接 /metrics/getbyparams?age=13&name=%E9%BB%84%E7%93%9C"
//这里使用RequestParam 在请求参数和接收参数一致时可以不用,不一致时可以使用注解规定接收参数
@GetMapping(value = "/metrics/getbyparams")
@ApiOperation("get请求多个简单参数")
public ResponseResult getByParams(@RequestParam String name, @RequestParam Integer age) {
	return ResponseResult.okResult ("获取到的参数为:" + name + ":" + age);
}
//数组
//简单参数的数组
@GetMapping(value = "/metrics/getbylist")
@ApiOperation("get请求list")
public ResponseResult getByList(String[] name) {
	return ResponseResult.okResult ("获取到的参数为:" + name.toString ());
}
//对象
//get请求可以用对象接收参数属性一致 /metrics/getbybean?age=10&name=%E5%BC%A0%E4%B8%89
@GetMapping(value = "/metrics/getbybean")
@ApiOperation("get请求bean")
public ResponseResult getByBean(MulCO mulCO) {
	return ResponseResult.okResult ("获取到的参数为:" + mulCO.toString ());
}
  • 位置参数[/get/tom]
//位置参数
//使用@PathVariable注解规定参数
@GetMapping(value = "/metrics/getbypath/{id}/{name}")
@ApiOperation("get请求位置参数")
public ResponseResult getByPath(@PathVariable(name = "id") Long id, @PathVariable(name = "name") String name) {
    return ResponseResult.okResult ("获取到的参数为:" + id + ":" + name);
}
POST请求

post请求的content-type类型有如下几种

application/x-www-form-urlencoded: 默认的表单提交格式,不支持文件

multipart/form-data: 用于上传文件,同时也支持普通类型的参数

application/json: 提交JSON格式的raw数据,适用于AJAX请求和REST风格的接口

  • 默认表单 application/x-www-form-urlencoded
//简单参数 接收参数没有注解
//post请求如果参数没有任何注解 那就是默认提交的普通表单类型  
@PostMapping(value = "/metrics/postbyparam")
@ApiOperation("post请求简单参数")
public ResponseResult postByParam(String room) {
	return ResponseResult.okResult ("获取到的参数为:" + room + ":");
}
//多个简单参数
//接收参数没有任何注解 也是普通表单
@PostMapping(value = "/metrics/postbyparams")
@ApiOperation("post请求多个简单参数")
public ResponseResult postByParams(@RequestParam String room, @RequestParam Integer num) {
    return ResponseResult.okResult ("获取到的参数为:" + room + ":" + num);
}
//实体类参数
//这里没有设置参数 注解 用的是普通表单数据
@PostMapping(value = "/metrics/postbybean")
@ApiOperation("post请求多个简单参数")
public ResponseResult postByBean(MulCO mulCO) {
    return ResponseResult.okResult ("获取到的参数为:" + mulCO.toString ());
}
//多参数组
//这里没有设置参数 注解 用的是普通表单数据
@PostMapping(value = "/metrics/postbybeans")
@ApiOperation("post请求数组")
public ResponseResult postByBeans(String[] room) {
    return ResponseResult.okResult ("获取到的参数为:" + room.toString ());
}
  • JSON 格式 application/json
//普通参数 接收
//这里使用了@RequestBody 说明请求参数都是json格式 {"room":"豪华"} 
@PostMapping(value = "/metrics/postbyraw")
@ApiOperation("post请求raw简单参数")
public ResponseResult postByRaw(@RequestBody Map params) {
    return ResponseResult.okResult ("获取到的参数为:" + params.get ("room"));
}
//对象类型参数
//这里使用了@RequestBody json参数{"name":"tom","age":12}
@PostMapping(value = "/metrics/postbyrawbean")
@ApiOperation("post请求raw bean参数")
public ResponseResult postByRawBean(@RequestBody MulCO mulCO) {
    return ResponseResult.okResult ("获取到的参数为:" + mulCO.toString ());
}
@PostMapping(value = "/metrics/postbyrawbeanlist")
@ApiOperation("post请求raw bean数组参数")
public ResponseResult postByRawBeanList(@RequestBody List<MulCO> mulCO) {
    return ResponseResult.okResult ("获取到的参数为:" + JSON.toJSONString (mulCO));
}
关于前端请求的一些问题总结
1.关于Axios的请求内容格式

axios默认使用的content-type为application/json并且是以request payload的形式发送数据

1.使用axios发送数据 默认为json格式
2.[request payload]对应的就是application/json内容格式
3.要是使用axios发送form内容格式也就是[application/x-www-form-urlencoded]的请求,需要使用qs.stringify({...params})转换
2.Jquery的ajax的默认内容格式

[Jquery]的ajax默认的ContentType和数据格式 :application/x-www-form-urlencoded; charset=UTF-8

1.ajax默认的ContentType的值为:application/x-www-form-urlencoded; charset=UTF-8 
此格式为表单提交格式,数据为key1=value1&key2=value2的格式 
2.ajax的data属性值格式为:{key1:value1,key2:value2},但最后会转为key1=value1&key2=value2的格式提交到后台 
3.如果ajax要和springmvc交互,key1=value1&key2=value2的格式,后台springmvc只需要定义对象或者参数就行了,会自动映射。 
4.如果springmvc的参数有@RequestBody注解,ajax必须将data属性值转为json字符串,不能为json对象(js对象,会自动转为key=value形式)。并且,修改contentType的值为:application/json; charset=UTF-8,这样加了@RequestBody注解的属性才能自定映射到值
原文链接:https://www.cnblogs.com/ewindstorm/p/16671641.html

标签:请求,GET,Spring,ResponseResult,value,metrics,controller,参数,name
From: https://www.cnblogs.com/sunny3158/p/17874636.html

相关文章

  • springmvc的controller方法不指定method时可以GET或POST提交
    springmvc的controller方法不指定method时可以GET或POST提交在写controller的方法时@RequestMapping("page")//@RequestMapping(value="page",method=RequestMethod.GET)写法二//@RequestMapping(value="page",method=RequestMeth......
  • SpringMVC中 @RequestParam 与 @PathVariable 区别
    两者都是用来修饰形参两者都是用来绑定访问路径的参数名、形参名称两者接收URL方式不同@RequestParamhttp://www.example.com/pets?petId=3@Controller@RequestMapping("/pets")@SessionAttributes("pet")publicclassEditPetForm{//...@RequestMapping(me......
  • java 捕获异常Exception 获取异常信息的方法 e.toString() e.getMessage() e.printSta
    Java异常中e.getMessage()和e.toString()e.printStackTrace()的区别e.getMessage():打印异常的原因e.toString():打印异常类型和异常的原因e.printStackTrace():打印完整的异常堆栈信息  总结e.getMessage()和e.toString()方法:打印的异常信息太少,没有具体......
  • Mysql: [HY000][1093] You can't specify target table 'dupes' for update in FROM c
    错误原因在同一语句中。不能先SELECT出同一表的某些值,在Update这个表实例错误实例DELETEFROMdupesWHEREidNOTIN(SELECTMIN(id)FROMdupesGROUPBYname)正确实例DELETEFROMdupesWHEREidNOTIN(SELECT*FROM(SELECTM......
  • 在写springboot和vue时,需要改进的地方
    后端Springboot(1)需要更加熟练使用mysql语句,insertupdatedeleteselect(查询)(2)前后端跨域问题的解决: (3)另外在使用delete语句时,可以在路径中直接添加id,实现通过id删除数据例①未在路径中添加id  ②在路径中使用idpostman中样例:  使用id作为路径参数的注意事项:......
  • IDEA2023只能创建jdk17和21的springboot项目解决
    现象:解决:将serverurl修改即可https://start.spring.io--》https://start.aliyun.com可以对比下内容修改成功后就可以创建低版本jdk的springboot项目了......
  • 014 springboot2.7.10与swagger3.0.0出现的版本冲突问题,以及解决办法
    springboot2.7.10集成Swagger3.0.0过程中出现的错误提示翻译过来:解决办法:1.网上的解决办法1:在配置文件中添加以下内容spring:mvc:#解决springboot2.7.10与swagger3版本冲突的问题pathmatch:matching-strategy:ant_path_matcher 结果报错,springboot......
  • SpringCloud动态路由利器--router4j
    ​前言本文介绍Java的动态路由中间件:router4j。router4j用于SpringCloud项目,它可以将某个url请求路由到指定的机器上,也可以将所有请求强制转到指定机器。问题描述Java后端在开发SpringCloud项目时如果同一个应用起了多个实例,会遇到以下问题:无法将指定url请求强制转到个人电脑......
  • Odoo_控制器(controller)常用知识点
    1.路由的定义@http.route(['/report/<converter>/<reportname>','/report/<converter>/<reportname>/<docids>',],type='http',auth='user',website=True)defreport_routes(......
  • 【SpringBootWeb入门-1】SpringBootWeb快速入门
     SpringBootWeb快速入门①.创建springboot工程,并勾选web开发相关依赖。在项目新建,File->Project->SpringInitializr,模块填 springboot-web-quickstart   在这里要注意:IDEA2023创建spring工程是无法选择jdk8或者11,原因是spring2.X版本在2023年11月24日停止维护了,因此......