当前位置: 首页 > 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.yayakq.cn/news/599146/

相关文章:

  • 做网站的开发心得icp备案流程
  • 电商设计素材网站有哪些天津网站建设信息
  • 网站开发及企业推广对于网络营销的认识
  • 哈尔滨站建好了吗网站无icp备案
  • 网站备案账号是什么样的桂林旅游网站制作公司
  • 做外贸什么网站比较好做asp网站建设代码
  • o2o电子商务网站开发与运营wordpress上一篇插件
  • 仿网站视频教程成立网站要什么手续
  • 个人网站创建平台要多少钱电脑网络连接不上怎么解决
  • 专业网站开发费用却持网站
  • 昆明二建建设集团网站广东华电建设股份有限公司网站
  • 企业网站为什么打不开12网站免费建站
  • h5在哪个网站上做移动端应用开发
  • 创新网站建设工作网站建设过时了
  • 资源下载站wordpress主题iis 配置网站详解
  • 济南设计网站个人 可以做社交网站
  • 江西网站建设哪家公司好wordpress漫画站
  • 适合医药公司做网站的图片高大上的平面设计网站
  • 做ipad的网站尺寸是多少东莞横沥中学
  • 做的网站打不开了制作二维码软件
  • 广州比较有名的网站建设公司乡土文化网站怎么做
  • 怎么做最简单的网站重庆网站建设技术支持
  • 网页升级访问紧急升级访问中seo网络营销外包
  • 晋城市 制作网站买一个app软件要多少钱
  • 建个免费的销售网站好中国十大品牌网官网
  • 临安规划建设局网站上海那家网站做的好
  • centos网站开发苏中建设集团网站
  • 安徽茶叶学会 网站建设重庆网站设计最加科技
  • 说说刷赞网站推广东莞南城网站建设
  • 大连做网站排名如何建立网站域名