1:Filter的基本概念;
2:写一个案列;
必须要实现Filter这个接口;
使用注解配置的时候,注意路径:
import javax.servlet.annotation.WebFilter;
是javax.servlet这个路径的WebFilter;
package servletDemo;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")//访问所有资源之前,都会执行该过滤器
public class FilterServlet implements Filter {
@Override
//在服务器启动后会创建Filter对象,然后调用init方法;只执行一次,用于加载资源
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("开始初始化!");
}
@Override
//每一次请求资源被拦截都会被执行;只行多次
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("过滤器执行了!");
//放行
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("过滤器回来了!");
}
@Override
//在服务器关闭后,Filter对象被销毁,如果服务器正常关闭则会执行destroy方法;只执行一次,用于释放资源
public void destroy() {
System.out.println("开始嗝屁!");
}
}
3:过滤器连接路径的配置:
4:多个过滤器的执行顺序,按类名来进行比较,谁小谁先执行;