当前位置: 首页 > news >正文

SpringBoot接收前端传递参数

  1)URL 参数

  • 参数直接 拼接在URL的后面,使用 ? 进行分隔,多个参数之间用 & 符号分隔。
  • 例如:http://localhost:8080/user?name=zhangsan&id=1
  • 后端接收(在Controller方法的参数列表中使用 @RequestParam 注解):
@GetMapping("/user")
public User getUser(@RequestParam(name="name") String name,@RequestParam(name="id") Long id){// 处理 ...
}

2)请求头(HTTP Headers)

  • 请求头可以携带一些属性,如:message -> "123",可以放在请求头中
  • 例如:使用请求头中Authorization属性进行身份校验
  • 后端接收(在Controller方法的参数列表中使用 @RequestHeader 注解):
@GetMapping("/verify")
public Boolean verify(@RequestHeader(name="Authorization") String token){// 处理 ...
}

3)请求体(Body)

  • POST、PUT等请求可以在请求体中发送参数,请求体通常以 JSON 或表单形式传递
  • 例如,通过  POST  请求发送 JSON 数据:{"id": 1,"name": "小明", age: 18}
  • 后端接收(在Controller方法的参数列表中使用 @RequestBody 注解):
public class User{private Long id;private String name;private Integer age;//get、set方法等...
}
//接收参数部分提取
@PostMapping("/addUser")
public void addUser(@RequestBody User user){// 处理 ...
}

4)表单(Form)

  • 一般通过 POST 请求发送,表单中的每一项都会拼接到URL后面
  • 例如:
              name                张三
              age                18
  • 这个表单拼接在 http://localhost:8080/addUser 后面: 

            http://localhost:8080/addUse?name=张三&age=18,所以要用 @RequestParam 注解

@PostMapping("/addUser")
public void addUser(@RequestParam(name="name") String name,@RequestParam(name="age") Integer age){// 处理 ...
}

5)路径参数(Path Param)

  • 直接写在路径里,如:http://localhost:8080/getUser/1 中的1就是路径参数
  • 通过 @PathVariable 注解提取
@GetMapping("/getUser/{userId}")
public User getUser(@PathVariable(name="userId") Long id){// 处理 ...
}

6)Cookie

  •  cookie是浏览器存储在用户电脑上的一些数据,一般存在有效期,
  •  可以通过 @CookieValue 注解获取指定的cookie数据
@GetMapping("/login")
public Boolean login(@CookieValue(name="username") String username,@CookieValue(name="password") String password){// 处理 ...
}

7)在路径参数中封装的多条数据

  •   如 http://localhost:8080/boss;name=老板;age=44/emp;name=员工;age=18

        其中boss是路径,"name=老板"与"age=44"属于boss路径下的参数

        同理emp是路径,"name=员工"与"age=18"属于emp路径下的参数

  • 利用 @MatrixVariable 注解进行获取路径内的数据
  • 如果要获取路径参数可以用 @PathVariable 注解
/*@MatrixVariable中的属性:name: 指定获取路径内数据的名称pathVar: 指定路径名称
*/
@GetMapping("/{Boss}/{Emp}")	// Boss是路径中的boss	Emp是路径中的emp
public void testMatrixVariable(//获取路径内封装的数据@MatrixVariable(name="name",pathVar="Boss") String name,@MatrixVariable(name="age",pathVar="Boss")  Integer age,@MatrixVariable(name="name",pathVar="Emp")  String name,@MatrixVariable(name="age",pathVar="Emp")   Integer age,4//获取路径参数@PathVariable(name="Boss") String boss,@PathVariable(name="Emp")  String emp){// 处理 ...
}

http://www.lryc.cn/news/455057.html

相关文章:

  • 【LeetCode周赛】第 418 场
  • Android学习7 -- NDK2 -- 几个例子
  • 问:说说JVM不同版本的变化和差异?
  • 计算机毕业设计 基于Python的社交音乐分享平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 51单片机的水位检测系统【proteus仿真+程序+报告+原理图+演示视频】
  • Python和R及Julia妊娠相关疾病生物剖析算法
  • Web安全 - 重放攻击(Replay Attack)
  • Python项目文档生成常用工具对比
  • 教育领域的技术突破:SpringBoot系统实现
  • RabbitMQ入门3—virtual host参数详解
  • 【Nacos入门到实战十四】Nacos配置管理:集群部署与高可用策略
  • UE5+ChatGPT实现3D AI虚拟人综合实战
  • [图形学]smallpt代码详解(2)
  • vmstat命令:系统性能监控
  • linux部署NFS和autofs自动挂载
  • WPF RadioButton 绑定boolean值
  • 2024 ciscn WP
  • 代码随想录--字符串--重复的子字符串
  • No.5 笔记 | 网络端口协议概览:互联网通信的关键节点
  • 手机地址IP显示不对?别急,这里有解决方案
  • 人工智能对未来工作影响的四种可能性
  • SpringBoot+ElasticSearch7.12.1+Kibana7.12.1简单使用
  • RESTful风格接口+Swagger生成Web API文档
  • 性能测试学习2:常见的性能测试策略(基准测试/负载测试/稳定性测试/压力测试/并发测试)
  • 【C++】—— 继承(上)
  • 【2024保研经验帖】东南大学计算机学院夏令营
  • dz论坛可可积分商城插件价值399元
  • python的extend和append
  • 贪心算法相关知识
  • 济南比较出名的人物颜廷利:全球最具影响力的思想家起名大师