springboot 拦截器重复读取请求体

package cn.silence.config;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;/*** @author 你的名字*/
@WebFilter(filterName = "FirstFilter", urlPatterns = "/*")
public class PreBodyFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {if (request instanceof HttpServletRequest) {request.setCharacterEncoding("UTF-8");chain.doFilter(new HttpServletRequestWrapper((HttpServletRequest) request), response);} else {chain.doFilter(request, response);}}
}
启动类:@ServletComponentScan
package cn.silence.config;import org.springframework.util.StreamUtils;import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import java.io.*;/*** @author 你的名字*/
public class HttpServletRequestWrapper extends javax.servlet.http.HttpServletRequestWrapper {private final byte[] body;public HttpServletRequestWrapper(HttpServletRequest request) throws IOException {super(request);body = StreamUtils.copyToByteArray(request.getInputStream());}@Overridepublic ServletInputStream getInputStream() {InputStream bodyStream = new ByteArrayInputStream(body);return new ServletInputStream() {@Overridepublic int read() throws IOException {return bodyStream.read();}@Overridepublic boolean isFinished() {return false;}@Overridepublic boolean isReady() {return true;}@Overridepublic void setReadListener(ReadListener readListener) {}};}@Overridepublic BufferedReader getReader() {return new BufferedReader(new InputStreamReader(getInputStream()));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 暂停其他app的声音_【一万个APP】第二十二期潮汐

基本信息分类:健康健美版本:Android-2.5.3 IOS-2.5.2更新时间:Android:2019.02.26 IOS:2019.03.06IOS评分(N/H):4.9/4.9开发商: 广州多少网络科技有限公司官方网站: https://tide.moreless.io/Android下载量:13,960,000IOS同类排名:52体验版本: Android-2.5.3PS:最近…

application配置中心

开111111111111111111111111111

c语言判断字符串是不是回文_LeetCode 热题 HOT 100 5. 最长回文子串

题目题解暴力法我们根据回文字符串特点进行判断一个字符串是不是回文。// 回文子串&#xff1a;首尾对称相等const isPalindrome s > { // abba aba for (let i 0; i < Math.floor(s.length / 2); i) { if (s[i] ! s[s.length - 1 - i]) { ret…

random list随机生成不重复数

有一个需求&#xff0c;需要随机生成六位数&#xff0c;从100001 ---999999但是又要不重复&#xff0c;且不影响性能。如果每次生成都去判断是否重复&#xff0c;当生成的次数足够多&#xff0c;会影响性能。我想的是开一条线程&#xff0c;提前去处理。 提前生成好随机的数。直…

django 默认查询条件_Python之Django系列-创建第一个应用-4

上一篇&#xff1a;Python之Django系列-创建第一个应用-3 上一篇文章我们介绍了创建项目&#xff0c;打开浏览器访问http://127.0.0.1:8000/polls/&#xff0c;能看见"投票主页视图"等描述。本篇文章我们接着上一篇文章继续学习&#xff0c;在Python之Django系列-初始…

Exception in thread “main“ java.lang.IllegalArgumentException: Illegal Capacity: -1

创建list集合下标超出。 模拟场景 我是由于创建list &#xff0c;大小的时候&#xff0c;写反了

三相同步电机怎么接线图_智能电表怎么接线 单相 三相电表接线图大全

电表分为单相电表和三相电表&#xff0c;接线方法又为直入式和互感式&#xff0c;现在我们分电表种类和接线方法&#xff0c;来讲解电表接线。单相电表直入式接线方法&#xff1a;家用单相电表的接线必须是左火L&#xff0c;右零N&#xff0c;左边火线进&#xff0c;火线出&…

window navicat连接阿里云服务器mysql步骤及常见问题

先登录自己的阿里云服务器 这有两个比较重要的&#xff0c;一个是配置出口端口&#xff0c; 还有一个就是拿到自己的公网ip 连接上服务器 我用的是finalshell 工具连接。 主要是基于docker安装mysql &#xff0c;现在我的服务器docker已经安装了&#xff0c;安装也很简单。网…

maya扇子动画_maya怎么制作一个万箭齐发的效果?

最近有基友大学作业需要做一个粒子效果的作业&#xff0c;我看到网上很多教程讲万箭齐发的&#xff0c;但是有的不细致有的重点都在表达式上&#xff0c;所以我写了一个快速get作业成果的教程。具体操作位置可以看末尾笔记哦。软件名称&#xff1a;AutoDesk maya 2015 64位中文…

docker安装mysql并使用navicat连接

创建映射目录&#xff0c;我安装在用户目录下 mkdir ~/mysql mkdir ~/mysql/conf mkdir ~/mysql/logs mkdir ~/mysql/data 分别执行以上命令&#xff0c;创建文件目录 #启动 docker run -id \ -p 3306:3306 \ --namemysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/lo…

记录生产BUG复盘

记录第一个生产bug&#xff0c;由于同一个服务在db层同时有mysql&#xff0c;mongodb实现。 归属于不同的项目。 在mysql项目时&#xff0c;由于增加的字段&#xff0c;由flyway执行。defualt 默认字段。 测试发布没有问题。 在发布归属mongodb项目时。flyway无法为mongodb执…

五人合伙最佳股份分配_五个人合伙,股份如何划分才合理?

今天和大家分享一个最近我们团队处理的案例&#xff0c;通过前面内容的分享&#xff0c;结合本案例看看你能从中悟出哪些内容&#xff1f;故事的主人翁叫晶晶&#xff0c;晶晶性格温柔&#xff0c;言语不多&#xff0c;属于传统的中国女性&#xff0c;具有中国传统女性之美。酷…

pyqt5 最小化 系统托盘_Qt中如何使窗口隐藏/最小化到托盘

展开全部功能62616964757a686964616fe78988e69d8331333361303733&#xff1a;窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮&#xff0c;窗口就还原了。这是一个被大多数桌面环境&#xff0c;比如Window…

linux centos7下载安装zlib

安装nginx 缺少zlib依赖&#xff0c;由于各种环境无法拉取yum安装&#xff0c; yum安装 yum install -y zlib zlib-devel 手动安装 zlib 版本预览 Index of /fossilshttp://www.zlib.net/fossils/ 解压 tar -zxvf zlib-1.2.8.tar.gz 进入加压后的文件 cd zlib-1.2.8 执行…

idea 升级到2020后 无法启动_升级iOS 14尝鲜后,无法降级 iOS13.5.1?

北京时间6月23日凌晨1点&#xff0c;苹果在线上举行了WWDC 2020全球开发者大会。给我们正式带来了iOS 14&#xff0c;并且在凌晨3点半时的时候&#xff0c;苹果发布 iOS 14 beta 内测版系统&#xff0c;并提供内测升级方法&#xff0c;随后很多用户已经升级体验。但是尝鲜之后&…

【pcre 依赖】linux安装pcre 依赖

记录转载 一、pcre PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库&#xff0c;包括 perl 兼容的正则表达式库。它比Boost之类的正则表达式库小得多。PCRE十分易用&#xff0c;同时功能也很强大&#xff0c;性能超过了POSIX正则表达式库和一些经典的正则…

moel vue 自定义v_vue在自定义组件中使用v-model的方法

vue如何在自定义组件中使用v-modelv-model指令所谓的“指令”其实就是扩展了HTML标签功能(属性)。先来一个组件&#xff0c;不用vue-model&#xff0c;正常父子通信我是父亲, 对儿子说&#xff1a; {{sthGiveChild}}import Child from ./Child.vue;export default {data() {ret…

java和c++的区别大吗_小自考本科含金量高吗?小自考和大自考有什么区别?

随着成人教育的普及&#xff0c;自考学历变得越来越常见。但是很多人不知道自学考试考分为小自考和大自考&#xff0c;那么小自考和大自考的区别在哪里&#xff1f;小自考本科的含金量高吗&#xff1f;一、小自考本科的含金量高吗&#xff1f;很多人都想知道小自考本科的含金量…

高德地图JSAPI 2.0使用Java代码代替Nginx进行反向代理产生CORS跨域

解决前端访问高德产生的啥啥啥问题&#xff0c;反正问题交给后端做了&#xff0c; 解决高德代理连接&#xff1a; 高德地图JSAPI 2.0使用Java代码代替Nginx进行反向代理https://blog.csdn.net/shechaojin/article/details/126267635?ops_request_misc%257B%2522request%255Fi…

记录生产其妙BUG

奇妙bug本地复现不了&#xff0c;sit环境有问题&#xff0c;最后才发现本地一毫秒处理三十多条数据&#xff0c;所以每隔三十多秒就会有不同的时间&#xff0c;服务器每秒处理数量超过了预期数量&#xff0c;所以sit很容易复现 由于使用lindorm存在诸多限制。有一个业务数据量…