如何彻底解决request请求流仅能读取一次的难题?
- 内容介绍
- 相关推荐
本文共计1204个文字,预计阅读时间需要5分钟。
解决request请求流只能读取一次的问题,实际开发中遇到的问题包括:
1. 数据二次或多次使用问题
2.实际开发中遇到的问题
在Spring Boot项目中,为防止SQL注入,采用Filter拦截器对所有请求进行拦截。
解决request请求流只能读取一次的问题
实际开发碰到的问题
解决request请求流中的数据二次或多次使用问题
实际开发碰到的问题
springboot项目中,为了防止sql注入,采用Filter拦截器对所有请求流中的json数据进行校验,请求数据没问题则继续向下执行,在后边的代码中应用到请求参数值时,发现request中的json数据为空;
除上边描述的情况,尝试过两次从request中获取json数据,第二次同样是获取不到的。
解决request请求流中的数据二次或多次使用问题
继承HttpServletRequestWrapper,将请求体中的流copy一份,覆写getInputStream()和getReader()方法供外部使用。每次调用覆写后的getInputStream()方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一直存在,这样就实现了流的重复读取。
本文共计1204个文字,预计阅读时间需要5分钟。
解决request请求流只能读取一次的问题,实际开发中遇到的问题包括:
1. 数据二次或多次使用问题
2.实际开发中遇到的问题
在Spring Boot项目中,为防止SQL注入,采用Filter拦截器对所有请求进行拦截。
解决request请求流只能读取一次的问题
实际开发碰到的问题
解决request请求流中的数据二次或多次使用问题
实际开发碰到的问题
springboot项目中,为了防止sql注入,采用Filter拦截器对所有请求流中的json数据进行校验,请求数据没问题则继续向下执行,在后边的代码中应用到请求参数值时,发现request中的json数据为空;
除上边描述的情况,尝试过两次从request中获取json数据,第二次同样是获取不到的。
解决request请求流中的数据二次或多次使用问题
继承HttpServletRequestWrapper,将请求体中的流copy一份,覆写getInputStream()和getReader()方法供外部使用。每次调用覆写后的getInputStream()方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一直存在,这样就实现了流的重复读取。

