SpringbootWeb学习请求响应过程中遇到的问题

在SpringMVC中,使用@RequestParam接收GET请求参数时,遇到+号会引发问题,因为+在URL中代表空格。文章通过示例展示了如何通过编码(将+替换为%2B)来正确传递包含+号的参数,确保集合参数如java+c++能被正确解析和接收。
摘要由CSDN通过智能技术生成
/*集合参数的接收*/
    @RequestMapping("/listParam")
    //需要用@RequestParam注解来修饰形参才能封装到集合中 集合名和接收到的参数名保持一致
    public String complexPojo2(@RequestParam List<String> hobby) {
        System.out.println(hobby);//进行输出
        return "listParam OJBK!";
    }
}

这个时候用postman发送一个带有 java, c++ ,python的get请求内容
在这里插入图片描述

控制台上只能打印出[java, C , python] 打印不出++
如下图:
在这里插入图片描述
原因:
因为在GET请求中,+符号在URL中具有特殊含义,表示空格的转义。因此,实际上发送的请求参数只包含java和python,而c++被解释成了空格。

为了解决这个问题,可以将+符号手动编码成%2B,即将GET请求中的参数修改为java%2Bc%2B%2B%2Bpython。这样在Spring MVC的@RequestParam注解中,就能正确地接收并存储带有+符号的请求参数了。
如下图所示:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值