实现不可重复提交功能
获取httpServletRequest中body数据
过滤器(Filter)和拦截器(Interceptor)之间的区别
过滤器生效
解决使用stringRedisTemplate的hasKey()方法时的警告
不可重复提交功能实现
@RequiredArgsConstructor
实现思路
通过在
1> 为什么要新建一个类继承HttpServletRequestWrapper实现对 httpServletRequest 的装饰,用来获取 body 数据
参数只能在拦截器里获取一次,往后在controller层就无法获取数据,提示body为空。
在网上查找资料后发现,request的输入流只能读取一次
2> 为什么需要在 filter 里进行对 httpServletRequest 的包装转换,直接在拦截器里进行包装不行嘛?
过滤器(Filter)和拦截器(Interceptor)之间的最大区别就是,过滤器可以包装Request和Response,而拦截器并不能
3> 过滤器生效
在启动类上加@ServletComponentScan //开启servlet的组件扫描
实现步骤
01 不可重复提交拦截器
/**
* 不可重复提交拦截器
* 描述:
*
* @author lyn
* @date 2022/3/7 16:38
*/