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

云服务器做的网站需要备案h5网站制作案例分析

云服务器做的网站需要备案,h5网站制作案例分析,游戏工作室多ip搭建,网站建设的文件一般我们会在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/697937/

相关文章:

  • 站酷网素材图库购物小程序有哪些
  • 网站建设波斯文wordpress 判断页面
  • 双语企业网站做古代风格头像的网站
  • 廊坊网站推广外包网站建设与运行的盈利收入
  • 网站改版 建设方案做外卖那些网站好
  • 商业网站推广wordpress 积分购物
  • 合肥网站开发建设wordpress响应式播放器
  • 网站会员管理系统网站设计服务平台
  • 牙医工具网站建设课程设计报告建设网站大概多少钱
  • 百度网站建设四川省建设厅安全员报名网站
  • 金华住房和城乡建设厅网站一个网站要注意哪些问题
  • 晋城北京网站建设网络教育网站如何做营销推广
  • flash网站链接怎么做吴忠市利通区建设局网站
  • 公司网站设计广州wordpress模板chinaz
  • 门户网站栏目规范化建设百度电商平台
  • 建公司网站步骤启东网站建设
  • 网站设计公司行业排名赣州网站建设百家号
  • 网站建设 免费夏邑县城乡建设规划局网站
  • 百度推广方案怎么写seo工程师是做什么的
  • 中国建设银行网站首页签约创建一个购物网站需要什么
  • 英德网站建设做亚马逊有看数据的网站吗
  • 网站仿制公司广州门户网站建设公司
  • 网站优化页面wordpress 正在建设插件
  • 注册一个网站流程网站seo综合公司
  • 商务网站价格俄文网站引擎
  • wordpress 框架嵌入搜索引擎优化介绍
  • 巴中哪里做网站个人网站制作总体设计
  • html下载网站模板专业的建设网站
  • 自己做网站需要做啥公司网站制作税目
  • 建站平台需要授权吗陕西省建设厅网站ca验证失败