url带有相同的参数名,后端根据接收类型处理的结果

今天无意调用了 “http://localhost:8401/testHotKey?p1=123&p1=456”,
这种带有相同参数的url,后端接收类型的不同,有不一样的效果
虽然不是很重大的发现,但记录一下也无妨~O(∩_∩)O

一、使用String接收:
在这里插入图片描述

发送请求:
在这里插入图片描述
后端接收结果:

两个相同的参数拼在一起,并用逗号隔开

在这里插入图片描述

二、使用List接收:(正常情况相同的参数名都是用List来接收的)

在这里插入图片描述
发送请求:
在这里插入图片描述

后端接收结果:

很明显两个参数组成了一个数组
在这里插入图片描述

### 如何在Spring后端框架中接收请求参数 在Spring后端框架中,有多种方式可以用来接收HTTP请求中的参数。这些方法包括但不限于通过路径变量、查询参数以及表单数据等方式来获取客户端传递的信息。 #### 使用`@PathVariable`接受URL模板中的占位符作为参数 当定义RESTful风格的服务接口时,通常会采用这种形式的API设计: ```java @GetMapping("/greeting/{name}") public String greeting(@PathVariable String name) { return "Hello, " + name; } ``` 此段代码展示了如何利用`@PathVariable`注解将URI模板中的部分映射到控制器的方法参数上[^1]。 #### 利用`@RequestParam`处理GET/POST请求携带的数据 对于简单的键值对类型的输入,比如网页表单提交或是附带查询字符串的链接访问,可以通过如下所示的方式读取特定称的参数: ```java @PostMapping("/submitForm") public ResponseEntity<String> submitForm( @RequestParam("username") String username, @RequestParam(value = "age", required = false) Integer age) { StringBuilder responseMessage = new StringBuilder(); responseMessage.append("Received form data:\nUsername=").append(username); if (age != null){ responseMessage.append("\nage=").append(age.toString()); } return ResponseEntity.ok(responseMessage.toString()); } ``` 这里不仅示范了基本的参数绑定操作,还体现了可选参数(`required=false`)的应用场景。 #### 接收JSON格式的实体对象 现代Web应用经常涉及到复杂的业务逻辑交互,此时往往需要传输结构化的信息。借助Jackson库的支持,可以直接让Spring MVC自动完成从JSON串至Java类实例之间的转换工作: 假设存在一个为`User`的POJO: ```java public class User { private Long id; private String email; // Getters and Setters omitted for brevity. } ``` 那么相应的处理器函数就可以这样编写: ```java @PostMapping(path="/createUser", consumes="application/json") @ResponseBody public void createUser(@RequestBody User user){ userRepository.save(user); } ``` 上述例子表明,在接收带有合适媒体类型头文件的应用层消息体之后,能够便捷地解析成目标域模型并进一步加工处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值