zoukankan      html  css  js  c++  java
  • springboot 使用Filter

     1.创建一个 Filter 类,实现 Filter 接口

    public class HelloFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
        }
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            //处理业务逻辑
            filterChain.doFilter(servletRequest, servletResponse);
        }
        @Override
        public void destroy() {
        }
    }

    2. 创建一个配置类,将该过滤器注册到Web拦截器中

    @Configuration
    public class WebConfig implements WebMvcConfigurer {
    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    //将自定义的 HelloFilter注册到Web应用的Filter中 使其生效
    registrationBean.setFilter(new HelloFilter());

    //声明该 HelloFilter 作用在哪些url
    List<String> urlList = new ArrayList<>();
    //作用于所有url
    urlList.add("/*");
    registrationBean.setUrlPatterns(urlList);

    return registrationBean;
    }
    }

     

    扩展:

    Filter(过滤器) Interceptor(拦截器)Aspect(切片)比较:

    • Filter 是 java web 里面的,肯定获取不到 spring 里面 Controller 的信息。
    • Interceptor、Aspect 是和 spring 相关的,所以能获取到 Controller 的信息。
    • Interceotor获取不到请求方法中的参数信息    Aspect(切片)可以获取到
  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/Dandwj/p/10582227.html
Copyright © 2011-2022 走看看