SpringBoot中如何在过滤器中取get的参数值

简介: SpringBoot中如何在过滤器中取get的参数值

写在前面


在SpringBoot中取值的方式有很多,比如直接通过RequestBody注解直接解析映射到相关的实体类中,或者是通过request对象来获取get请求的参数。


但是今天我们的需求不太一样,是取值,但是又不是一般的取值。


具体的需求是要将所有的请求都要存入数据库中,比如前台访问一个接口,我们想要记录下这个访问记录,并且记录下本次访问的所有参数,当然,这里面无论是get请求还是post请求,都是要记录的。


今天我们就重点突破一下get请求的参数获取吧。


get请求参数获取需求场景


假设我们访问的链接是:http://localhost:8080/test/list?param1=参数1&param2=参数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[]>,需要自己去进行遍历才可以。


遍历就不在这里说了,今天就学习到这啦,你是否学会了呢?


相关文章
|
4天前
|
Java Spring 容器
【二十二】springboot整合拦截器实战并对比过滤器
【二十二】springboot整合拦截器实战并对比过滤器
40 0
|
6月前
|
Java
Springboot接口同时支持GET和POST请求
Springboot接口同时支持GET和POST请求
163 0
|
4天前
|
监控 IDE Java
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
48 0
|
4天前
|
存储 前端开发 NoSQL
【二十一】springboot整合过滤器实战
【二十一】springboot整合过滤器实战
18 0
|
4天前
|
存储 Java
SpringBoot中过滤器如何设置执行顺序
SpringBoot中过滤器如何设置执行顺序
140 0
|
4天前
|
Java
SpringBoot中如何在过滤器中取post的参数值
SpringBoot中如何在过滤器中取post的参数值
101 0
|
4天前
|
存储 Java Maven
springboot项目中使用shiro 自定义过滤器和token的方式
springboot项目中使用shiro 自定义过滤器和token的方式
44 1
|
5月前
|
前端开发 Java
springboot,get传日期格式转换
springboot,get传日期格式转换
37 0
|
6月前
|
Java 数据安全/隐私保护
Springboot过滤器中注入Bean
Springboot过滤器中注入Bean
76 1
|
6月前
|
Java 程序员
在Springboot HandlerInterceptor中获取GET和POST请求参数
上面RequestWrapper的代码我查阅资料的时候在多篇博文中看到了,但是单有RequestWrapper还不足以完成整个请求,而且我看很多网络上的博客都是只在Interceptor中Wapper,但实际这样是不对的,而且也完全不需要,因为必须要替换掉整个请求链路中的Request才行。这里我们只需要在Filter中将普通的Request替换成我们自己的RequestWrapper
195 0