过滤器的使用大致可以分为四步:
第一步:定义一共类实现Filter接口,并重写其中方法
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
@Override
public void destroy() {
Filter.super.destroy();
}
}
注意这个Filter接口是Javax.servlet包下面的切记不能实现错了
第二步:在类上定义@WebFilter注解,并配置filter拦截资源的路径
,如:
@WebFilter(urlPatterns = "/*")//代表拦截所有请求
第三步:在doFilter()方法里面编写逻辑进行验证
,验证通过放行,否则不放行
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (验证通过) {//验证通过放行
filterChain.doFilter(servletRequest, servletResponse);
}//否则不放行
}
第四步:在启动类上使用@ServletComponentScan注解开始servlet组件的支持,让@WebFilter生效,
因为@WebFilter注解不是spring的注解,需要通过@ServletComponentScan注解才可以被扫描到,才能生效。
下一篇记录Spring中拦截器的基本使用