springBoot接口GETMapping传参特殊字符被自动转义(加号+,中英文逗号,空格等)

【背景】GET接口参数包含特殊字符+号,用@requestParam注解读取时,自动置为了空格
【解决方法】
第一种:改用HttpservletRequest接收参数。缺点是参数要自行截取。
比如接口:user/info?name=tom+eva&phone=1XXXXXXXXXX
request=“name=tom+eva&phone=1XXXXXXXXXX”

第二种:前端改用转义字符传参。+号用%2B
请求接口:user/info?name=tom%2Beva&phone=1XXXXXXXXXX

Spring框架中,GetMapping注解用于处理HTTP GET请求,并将URL映射到相应的控制器方法。GetMapping可以接收参数,这些参数通常来自于请求的URL路径或查询字符串,或者也可以是方法的参数。下面介绍几种常见的传递参数的方式: 1. 路径变量(PathVariable):通过在URL中使用花括号{}来定义路径变量。这样,这些变量的值会自动传递到控制器方法的对应参数中。 ```java @GetMapping("/users/{id}") public String getUser(@PathVariable String id) { // 处理用户信息,id是从URL中获取的路径变量 } ``` 2. 查询参数(RequestParam):查询参数通常是通过URL的查询字符串来传递的,即URL中的问号(?)后面跟随的参数。 ```java @GetMapping("/search") public String search(@RequestParam String query) { // 处理搜索请求,query是从URL的查询字符串中获取的参数 } ``` 3. 矩阵变量(Matrix Variable):矩阵变量是通过在URL路径中使用分号(;)来传递的,是一种较不常见的参数传递方式。 ```java @GetMapping("/items/{id};type={type}") public String getItem(@PathVariable String id, @PathVariable String type) { // 处理商品请求,id和type是从URL路径中获取的矩阵变量 } ``` 4. 会话参数(SessionAttribute):如果参数存储在会话中,可以通过@SessionAttribute来访问。 ```java @GetMapping("/profile") public String getUserProfile(@SessionAttribute("user") User user) { // 使用会话中的用户信息 } ``` 5. 请求体参数(RequestBody):通过将请求体映射到一个对象中来接收参数。这种方式通常用于处理JSON或XML格式的数据。 ```java @PostMapping("/login") public String login(@RequestBody LoginRequest loginRequest) { // 登录请求,loginRequest是通过请求体传递的JSON对象 } ``` 在使用GetMapping时,需要注意的是GetMapping默认只处理GET请求,所以如果需要处理POST、PUT、DELETE等其他类型的HTTP请求,应该使用PostMapping、PutMapping、DeleteMapping等对应的注解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值