springboot整合filter

和整合servlet相同 整合filter也有两种方法

1.加@WebServlet注解   SpringBootApplication扫描

例如:

@WebFilter(filterName = "firstFilter",urlPatterns = "/first")
public class FirestFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("进入Filter");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("离开Filter");
    }
}
SpringBootApplication类:
@SpringBootApplication
@ServletComponentScan //在springboot启动时会扫描@WebServlet注解
public class SpringBoot_TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBoot_TestApplication.class,args);
    }
}


2.通过配置类加入springioc容器
例如:

public class SecondFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("进入 secondFilter");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("离开 secondFilter");
    }

    @Override
    public void destroy() {

    }
}


配置类:

@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean getFilterRegistrationBean(){
        FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new SecondFilter());
        //filterRegistrationBean.addUrlPatterns(new String[]{"*.do","*.jsp"});
        filterRegistrationBean.addUrlPatterns("/second");
        return  filterRegistrationBean;
    }
}
posted @ 2020-04-10 00:18  第十八使徒  阅读(337)  评论(0)    收藏  举报