SpringBoot集成Filter、Listener、Interceptor

Filter过滤器

概述:可以拦截和过滤所有web资源

实现方式一:使用@WebFilter注解实现

@WebFilter(filterName = "myFilter",urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {}

    @Override
    public void destroy() {}
}

实现方式二:在配置类中注册FilterRegistrationBean

@Bean
public FilterRegistrationBean filterRegistrationBean()
{
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setFilter(new Filter(){  //设置一个Filter
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) 
throws IOException, ServletException{  filterChain.doFilter(servletRequest,servletResponse);  }
});
filterRegistrationBean.addUrlPatterns("/*");  //设置这个Filter的匹配路径
return filterRegistrationBean;  //注册这个Filter
}

Listener监听器

概述:当WEB应用发生某些事件时响应的行为

实现方式一:使用@WebListener注解实现

@WebListener  //这个类必须是继承某个事件接口的类
public class FirstListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) { System.out.println("init .. "); }
@Override
public void contextDestroyed(ServletContextEvent sce) { System.out.println("desroyed .. "); }
}

实现方式二:在配置类中注册ServletListenerRegistrationBean

@Bean
public ServletListenerRegistrationBean getBean(){
return new ServletListenerRegistrationBean(new SecondListener());
}

Interceptor拦截器

概述:只能拦截匹配路径的请求,可以对请求过滤和拦截

实现:

@Configuration
public class AppConfigurer extends WebMvcConfigurerAdapter {
    @Bean
    public HandlerInterceptor getMyInterceptor() {
        return new Interceptor();
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getMyInterceptor()).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
}
发布了10 篇原创文章 · 获赞 2 · 访问量 784

猜你喜欢

转载自blog.csdn.net/u011618818/article/details/105627980