HttpServletRequest get()后端动态获取地址栏请求参数

可参考文章:
Servlet–HttpServletRequest获取请求信息(请求头、请求行、参数)详解

重点

入参
HttpServletRequest request

request.getQueryString() 获取问号以后的所有内容

技术背景

项目中需要动态获取url参数,前端因为移动端每次跟后端传递的参数属性不确定,所以无法固定参数类型、名称、个数。

情况介绍

1. url只有一个参数

https://www.baidu.com?auctionId=00000#/

在这里插入图片描述

在这里插入图片描述

2. url有多个参数

https://www.baidu.com?auctionId=00000&createBy=xxx&version=0.0.0&dealerId=00000&uid=000000000000#/

在这里插入图片描述
在这里插入图片描述

解决方案

入参

HttpServletRequest request
通过

request.getQueryString() 获取问号以后的所有内容

public String checkReport(HttpServletRequest request, Model model) {

 String param = request.getQueryString()
 log.info("param:{}",param)
.....

}

以上2种url param打印的日志:

param:auctionId=00000
param:auctionId=00000&createBy=xxx&version=0.0.0&dealerId=00000&uid=000000000000

效果

无论参数怎么变,接口都可用,大大提升了接口兼容性,健壮性。

注意:

getQueryString()应该是只能获取get方法的。
如果是post方法,应该使用request.getReader() 备注:是个流。需要处理,只能用一次。


版权声明:本文为weixin_44722978原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。