这篇文章分享一下Java web项目中注册过滤器的两种方式,经常用的是第二种,第一种应该很少人用过吧~
第一步:创建管理器
import javax.servlet.*;
import java.io.IOException;
/**
* @author heyunlin
* @version 1.0
*/
public class GlobalFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
// todo:自己的过滤器处理逻辑
chain.doFilter(req, resp);
}
}
第二步:注册管理器
方法一:通过注解配置扫描路径
在配置类上使用@ServletComponentScan注解配置过滤器所在的包。
import org.springframework.boot.web.servlet.ServletComponentScan;
@ServletComponentScan("过滤器所在的包名")
方法二:通过配置类
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author heyunlin
* @version 1.0
*/
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<GlobalFilter> customHeaderFilter() {
FilterRegistrationBean<GlobalFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new GlobalFilter ());
// 设置过滤器处理的路径
registrationBean.setUrlPatterns(
"/user/selectByUsername",
"/permission/resources",
"/permission/selectPermissions",
"/permission/selectUserPermissions",
"/permission/selectAnonymityPermissions"
);
registrationBean.setName("headerFilter");
registrationBean.setOrder(1);
return registrationBean;
}
}