• 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(切片)可以获取到
  • 相关阅读:
    404. Sum of Left Leaves
    400. Nth Digit
    42. Trapping Rain Water
    154. Find Minimum in Rotated Sorted Array II
    [USACO4.2]草地排水Drainage Ditches
    [NOIP2010提高组]关押罪犯
    [洛谷P1580]yyy loves Easter_Egg I
    [洛谷P1144]最短路计数
    [洛谷P1346]电车
    [codevs1243]网络提速
  • 原文地址:https://www.cnblogs.com/Dandwj/p/10582227.html
Copyright © 2020-2023  润新知