zoukankan      html  css  js  c++  java
  • spring boot Filter过滤器的简单使用

    springboot使用Filter过滤器有两种方式:

    一种是实现Filter接口然后通过@Component注解向项目加入过滤器

    另一种是通过配置类来配置过滤器

    @Component
    public class DemoFilter implements Filter {
        /**
         * 初始化
         * @param filterConfig
         * @throws ServletException
         */
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("filter init");
        }
    
        /**
         * 处理逻辑
         *
         * 过滤器只能拿到请求和响应  至于是请求哪个控制器,哪个方法,filter是不知道的
         *
         * 如果需要知道请求的是哪个控制器和哪个方法的时候就需要用到拦截器了
         *
         * @param servletRequest
         * @param servletResponse
         * @param filterChain
         * @throws IOException
         * @throws ServletException
         */
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            System.out.println("filter start");
           
            filterChain.doFilter(servletRequest,servletResponse);
            
            System.out.println("filter finish");
        }
    
        /**
         * 销毁方法
         */
        @Override
        public void destroy() {
            System.out.println("filter destroy");
        }
    }
    

      

    另一种的实现需要把@Component注解去掉然后添加一个配置类WebConfig

    /**
     * 通过配置类设置过滤器
     */
    @Configuration
    public class WebConfig {
    
    
        /**
         * 和直接使用@Component注解进行过滤不一样的是它可以指定过滤的url
         * @return
         */
        @Bean
        public FilterRegistrationBean demoFilter(){
            FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    
            DemoFilter filter = new DemoFilter();
    
            registrationBean.setFilter(filter);
    
            List<String> urls = new ArrayList<>();
    //对所有的url进行过滤 urls.add("/*");
    registrationBean.setUrlPatterns(urls); return registrationBean; } }

      

  • 相关阅读:
    cnpm 安装和 command not found
    C#-弄懂泛型和协变、逆变
    2019年阅读
    ES5和ES6数组方法
    ASP.NET MVC中的捆绑和压缩技术
    markdown解析与着色
    Oauth2.0
    同源策略和跨域的解决方案
    windows常用命令
    Java 9 在win10环境搭建
  • 原文地址:https://www.cnblogs.com/xiluonanfeng/p/10855543.html
Copyright © 2011-2022 走看看