当前位置: 首页 > news >正文

江苏个人备案网站内容代理公司注册

江苏个人备案网站内容,代理公司注册,关键词排名优化佛山售后,建设的网站一般我们会在InterceptorAdapter拦截器中对请求进行验证 正常普通接口请求,request.getParameter()可以获取,能多次读取 如果我们的接口是用RequestBody来接受数据,那么我们在拦截器中 需要读取request的输入流 ,因为 ServletReq…

一般我们会在InterceptorAdapter拦截器中对请求进行验证

正常普通接口请求,request.getParameter()可以获取,能多次读取

如果我们的接口是用@RequestBody来接受数据,那么我们在拦截器中

需要读取request的输入流  ,因为 ServletRequest中getReader()和getInputStream()只能调用一次

这样就会导致controller 无法拿到数据。

解决方法 :

1、自定义一个类 BodyReaderHttpServletRequestWrapper.java 

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;import org.springframework.util.StreamUtils;/*** @author WBG* @date 2020/6/22 10:42* @describe*/
public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper{private byte[] requestBody = null;//用于将流保存下来public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException {super(request);requestBody = StreamUtils.copyToByteArray(request.getInputStream());}@Overridepublic ServletInputStream getInputStream() throws IOException {final ByteArrayInputStream bais = new ByteArrayInputStream(requestBody);return new ServletInputStream() {@Overridepublic int read() throws IOException {return bais.read();}@Overridepublic boolean isFinished() {return false;}@Overridepublic boolean isReady() {return false;}@Overridepublic void setReadListener(ReadListener readListener) {}};}@Overridepublic BufferedReader getReader() throws IOException{return new BufferedReader(new InputStreamReader(getInputStream()));}
}
View Code

2、自定义 MyFilter  继承Filter

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;/*** @author WBG* @date 2020/6/22 14:32* @describe*/
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("开始");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {ServletRequest requestWrapper=null;if(request instanceof HttpServletRequest) {requestWrapper=new BodyReaderHttpServletRequestWrapper((HttpServletRequest)request);}if(requestWrapper==null) {chain.doFilter(request, response);}else {System.out.println("------------------------------请求报文----------------------------------");System.out.println(getParamsFromRequestBody((HttpServletRequest) requestWrapper));System.out.println("------------------------------请求报文----------------------------------");chain.doFilter(requestWrapper, response);}}/* ** 获取请求体内容* @return* @throws IOException*/private String getParamsFromRequestBody(HttpServletRequest request) throws IOException {BufferedReader br = null;String listString = "";try {br = request.getReader();String str = "";while ((str = br.readLine()) != null) {listString += str;}} catch (IOException e) {e.printStackTrace();}return listString;}@Overridepublic void destroy() {System.out.println("destroy");}
}
View Code

3、web.xm配置过滤器

  <!--定义过滤器--><filter><!--定义过滤器拦截URL地址--><filter-name>test2</filter-name><!--过滤器的文件--><filter-class>com.zhhy.hy2000interface.utils.filter.MyFilter</filter-class></filter><filter-mapping><!--过滤器的名称--><filter-name>test2</filter-name><!--过滤器负责拦截的URL--><!-- /* 会把所有的请求拦截下来 --><url-pattern>/*</url-pattern></filter-mapping>
View Code

(如果是Springboot,使用注解即可)

http://www.ds6.com.cn/news/30544.html

相关文章:

  • 设计网站公司都选亿企邦seo和sem分别是什么
  • 学校网站建设百度网盘网站入口
  • 评论凡科网站建设怎么样网络营销案例100例
  • 买域名之后怎样做网站软件推广
  • 微网站开发语言石家庄seo扣费
  • 追设计网站百度点击工具
  • 宁夏网站seoseo在线培训课程
  • 中企动力做的电梯网站成都百度百科
  • 网站seo优化方法网站空间
  • 代理网页游戏需要多少钱seo sem关键词优化
  • 网站因未取得备案号而被关闭优化大师win10能用吗
  • 三语网站建设金戈枸橼酸西地那非
  • 风行ppt模板网西安seo服务外包
  • 江苏省城乡建设官网站2024年新冠疫情最新消息今天
  • 做国际网站的流程阿里指数查询手机版
  • 用dw软件做网站栅格系统线上直播营销策划方案
  • 做图片素材的网站有哪些网站推广公司电话
  • 域名网站建设微营销是什么
  • 公司请人做的网站 域名属于谁怎么网上推广自己的产品
  • 网站做数据分析seo网站优化推广怎么样
  • 有没有专门做图的网站网络推广怎么做?
  • php网站开发工程师招聘要求郑州高端网站制作
  • 珠海横琴天聚建设工程有限公司网站时空seo助手
  • 生产企业网站如何做seo网络营销策划案怎么写
  • AWS免费套餐做网站可以吗免费b站网页推广
  • 安徽建设教育协会网站公司做网页要多少钱
  • 哈尔滨网站建设2017郑州网站建设方案
  • wordpress旅游主题seo超级外链工具
  • 湛江seo咨询整站优化工具
  • 软件设计师证书有用吗中和seo公司