02-02:springboot 整合filter

1.通过注解扫描完成Filter组件的注册

  1.1编写filter (添加拦截的servlet)

//@WebFilter(filterName = "FirstFilter",urlPatterns = {"*.do","*.jsp"})
@WebFilter(filterName = "FirstFilter",urlPatterns = "/first") 
public class FirstFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        System.out.println("进入filter");
        chain.doFilter(request, response);
        System.out.println("离开filter");
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

}

  1.2 添加启动器

/**
 * springboot 整合filter方式一
 * 
 * @author Administrator
 */
@SpringBootApplication
@ServletComponentScan
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

2.通过方法完成filter组件的注册

2.1编写filter

public class secondFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        System.out.println("进入secondFilter");
        chain.doFilter(request, response);
        System.out.println("离开secondFilter");
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

}

2.2 编写启动类

/**
 * springboot整合filter方式2
 * 
 * @author Administrator
 *
 */
@SpringBootApplication
public class App2 {
    public static void main(String[] args) {
        SpringApplication.run(App2.class, args);
    }
    /**
     * 注册servlet
     * @return
     */
    @Bean
    public ServletRegistrationBean  getServletRegistrationBean () {
        ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
        bean.addUrlMappings("/second");
        return bean;
    }
    /**
     * 注册Filter
     * @return
     */
    @Bean
    public FilterRegistrationBean  getFilterRegistrationBean() {
        FilterRegistrationBean bean = new  FilterRegistrationBean (new secondFilter());
//        bean.addUrlPatterns(new String[] {"*.do","*.jsp"});
        bean.addUrlPatterns("/second");
        return bean;
    }
}
原文地址:https://www.cnblogs.com/wangjianly/p/9794167.html