写在前面
在SpringBoot中取值的方式有很多,比如直接通过RequestBody注解直接解析映射到相关的实体类中,或者是通过request对象来获取get请求的参数。
但是今天我们的需求不太一样,是取值,但是又不是一般的取值。
具体的需求是要将所有的请求都要存入数据库中,比如前台访问一个接口,我们想要记录下这个访问记录,并且记录下本次访问的所有参数,当然,这里面无论是get请求还是post请求,都是要记录的。
今天我们就重点突破一下get请求的参数获取吧。
get请求参数获取需求场景
假设我们访问的链接是:http://localhost:8080/test/list?param1=参数1¶m2=参数2
想要获取get请求的参数,其实就是获取param1=参数1 和 param2=参数2。
我们是可以通过request.getParamter("param1")来获取到相应的参数。
但是我们的需求不是这样的,而是动态的将所有的参数都取出来,而不是通过指定的参数名取到相关的值。
为什么呢?
因为在请求的过程中,我们不可能提前获知到将要传的是哪些参数名称,更别说通过这些参数名称来一一获取相应参数了。
解决方案
如何解决上述需求呢?那自然是要说一些HttpServletRequest对象的方法了。
HttpServletRequest对象提供了几个方法,可供我们使用,接下来举一些例子来看看。
比如:request.getServletPath(),这个方法用来获取访问路径。
场景中的链接经过此方法取到的值就是http://localhost:8080/test/list。
比如:request.getParamterMap(),这个方法就可以取到get请求中的全部参数了。
也就是param1=参数1 和 param2=参数2。
只不过这里还要注意一点,那就是这个方法返回的是一个Map<String,String[]>,需要自己去进行遍历才可以。
遍历就不在这里说了,今天就学习到这啦,你是否学会了呢?