• 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(切片)可以获取到
  • 相关阅读:
    正则表达式
    爬虫原理和网页构造
    简单的博客系统之二
    配置编辑器geany
    linux删除多文件
    eNSP交换路由基础
    NTP centOS6.5
    shell脚本之lftp上传
    进度条
    maketrans与translate函数
  • 原文地址:https://www.cnblogs.com/Dandwj/p/10582227.html
Copyright © 2020-2023  润新知