springboot IDEA 过滤器全局赋值的操作使用流程

简介: springboot IDEA 过滤器全局赋值的操作使用流程

1.最近在开发一个项目 ,需要进行一个全局拦截器的处理,进行拦截所有的get、post请求的操作;避免所有的方法都进行该用户名、工号的赋值,减少重复工作,这个找了许多的案例,最后还是调试出来了,现在做一个分享,避免相关小伙伴遇到同样的问题。

@Component

public class HttpServletFilter implements Filter {


   @Override

   public void init(FilterConfig filterConfig) {

   }


   @Override

   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

       Map<String, String[]> m = new HashMap<String, String[]>(request.getParameterMap());

       if(((HttpServletRequest) request).getMethod().toUpperCase().equals("GET"))

       {

         

       }

       ParameterRequestWrapper parameterRequestWrapper = new ParameterRequestWrapper((HttpServletRequest) request, m);

       //继续向后传递修改后的request,拦截器不能实现。

       chain.doFilter(parameterRequestWrapper, response);

   }


   @Override

   public void destroy() {


   }


/**

* 读取body的值

*

* @param request

*/

private void renewBody(HttpServletRequest request) {

   StringBuilder stringBuilder = new StringBuilder();

   BufferedReader bufferedReader = null;

   try {

       InputStream inputStream = request.getInputStream();

       if (inputStream != null) {

           bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

           char[] charBuffer = new char[128];

           int bytesRead = -1;

           while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {

               stringBuilder.append(charBuffer, 0, bytesRead);

           }

       }

   } catch (IOException ex) {

       ex.printStackTrace();

   } finally {

       if (bufferedReader != null) {

           try {

               bufferedReader.close();

           } catch (IOException ex) {

               ex.printStackTrace();

           }

       }

   }  


}


以上是关键代码的处理,如果有调试不过的小伙伴可以留言一起来探讨一下。

相关文章
|
4天前
|
监控 IDE Java
探索 IntelliJ IDEA 中 Spring Boot 运行配置选项及其作用
探索 IntelliJ IDEA 中 Spring Boot 运行配置选项及其作用
9 0
|
5天前
|
安全 Java 机器人
Spring Boot中的自定义过滤器
Spring Boot中的自定义过滤器
|
8天前
|
Java Maven 开发工具
IDEA使用Spring Initializr流畅的创建springboot项目
IDEA使用Spring Initializr流畅的创建springboot项目
32 0
|
8天前
|
Java 应用服务中间件 Maven
浅谈后端整合Springboot框架后操作基础配置
浅谈后端整合Springboot框架后操作基础配置
13 3
|
12天前
|
Java API 数据安全/隐私保护
在Spring Boot中,过滤器(Filter)是一种非常有用的组件
在Spring Boot中,过滤器(Filter)是一种非常有用的组件
28 6
|
14天前
|
NoSQL Java 数据库
SpringBoot实用开发篇第三章(数据层解决方案操作)
SpringBoot实用开发篇第三章(数据层解决方案操作)
|
14天前
|
JSON Java 测试技术
SpringBoot实用开发篇第二章(测试操作)
SpringBoot实用开发篇第二章(测试操作)
|
14天前
|
Java 数据库连接 开发者
SpringBoot实用开发篇第一章(yml配置文件操作)
SpringBoot实用开发篇第一章(yml配置文件操作)
|
19天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
30 3
|
21天前
|
SQL Java Maven
idea如何建立一个springboot项目
idea如何建立一个springboot项目