当前位置:首页 > 综合随写 > 正文内容

SpringBoot Controller接收参数的几种常用方式

admin3周前 (04-01)综合随写24

第一类:请求路径参数

1、@PathVariable

获取路径参数。即url/{id}这种形式。


2、@RequestParam

获取查询参数。即url?name=这种形式


例子

GET

http://localhost:8080/demo/123?name=suki_rong

对应的java代码:


@GetMapping("/demo/{id}")

public void demo(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name) {

    System.out.println("id="+id);

    System.out.println("name="+name);

}

1

2

3

4

5

输出结果:

id=123

name=suki_rong


第二类:Body参数

因为是POST请求,这里用Postman的截图结合代码说明


1、@RequestBody

例子


对应的java代码:


@PostMapping(path = "/demo1")

public void demo1(@RequestBody Person person) {

    System.out.println(person.toString());

}

1

2

3

4

输出结果:

name:suki_rong;age=18;hobby:programing


也可以是这样


@PostMapping(path = "/demo1")

public void demo1(@RequestBody Map<String, String> person) {

    System.out.println(person.get("name"));

}

1

2

3

4

输出结果:

suki_rong


2、无注解

例子


对应的java代码:


@PostMapping(path = "/demo2")

public void demo2(Person person) {

    System.out.println(person.toString());

}

1

2

3

4

输出结果:

name:suki_rong;age=18;hobby:programing


Person类

public class Person {


    private long id;

    private String name;

    private int age;

    private String hobby;


    @Override

    public String toString(){

        return "name:"+name+";age="+age+";hobby:"+hobby;

    }


    // getters and setters

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

第三类:请求头参数以及Cookie

1、@RequestHeader

2、@CookieValue

例子

java代码:


@GetMapping("/demo3")

public void demo3(@RequestHeader(name = "myHeader") String myHeader,

        @CookieValue(name = "myCookie") String myCookie) {

    System.out.println("myHeader=" + myHeader);

    System.out.println("myCookie=" + myCookie);

}

1

2

3

4

5

6

也可以这样


@GetMapping("/demo3")

public void demo3(HttpServletRequest request) {

    System.out.println(request.getHeader("myHeader"));

    for (Cookie cookie : request.getCookies()) {

        if ("myCookie".equals(cookie.getName())) {

            System.out.println(cookie.getValue());

        }

    }

}



扫描二维码推送至手机访问。

版权声明:本文由XIAKEM发布,如需转载请注明出处。

本文链接:https://xiakem.cn/?id=4

分享给朋友:

“SpringBoot Controller接收参数的几种常用方式” 的相关文章

跨境业务如何用代理IP

跨境业务如何用代理IP

代理IP对于做跨境的小伙伴来说,都是必不可少的工具,目前出海的玩法已经是多种多样,开店、账号注册、短视频运营、直播带货、网站SEO等等都是跨境人需要涉及到的业务。而国外代理!P的获取渠道非常多,那么做跨境到底应该用哪种代理!P呢?干净的IP又是怎么选到的?我们可以一起来看看代理IP的选择技巧代理IP...

【Guava】IO工具

【Guava】IO工具

Guava 使用术语 流来表示可关闭的,并且在底层资源中有位置状态的 I/O 数据流。字节流对应的工具类为 ByteSterams,字符流对应的工具类为 CharStreams。Guava 中为了避免和流直接打交道,抽象出可读的 源 source 和可写的 汇...

【Guava】集合工具Collections2

Collections2javaprivate  Collections2() {}私有构造器,也没有静态构造器,所以可以很明确它是一个纯工具类了。filter过滤方法传入一个带过滤的容器,和一个实现过滤规则的函数类,返回一个带有过滤动作的容器javapublic&nb...

DeepSeek R1 + Cherry Studio 打造本地 AI 知识库:真的太香了!

DeepSeek R1 + Cherry Studio 打造本地 AI 知识库:真的太香了!

大家好,我是R哥。今天继续聊聊 DeepSeek R1,不过这次我们要搭配 Cherry Studio 来打造一个本地知识库,让 AI 更懂你、更贴合你的需求。相比于上一期的 DeepSeek R1 + ima 个人知识库,这次的方案更强大,支持的格式更多,还...

如何定位 Druid & HikariCP 连接池的连接泄漏问题?

最近碰到一个 case,一个 Java 应用无法获取新的数据库连接,日志中出现了以下错误:com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 5001, active 20, maxActive&nb...

关于window版本nacos版本安装过程

关于window版本nacos版本安装过程

环境window10 16G 1TB下载地址window版本zip包 https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.zipLinux版tar包 https://github.com/a...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。