01|01 过滤器基础

  • 过滤器其实就是一个接口,Filter, javax.servet.Filter
  • 过滤器就是一个对象,可以在请求一个资源(静态或动态资源),或响应* * 一个资源,或请求和响应一个资源的时候,执行过滤任务!!!!
  • 过滤器如何被执行?
    过滤器也需要交给tomcat服务器运行!!!!
  1. 过滤器的生命周期
构造方法: 在web应用加载时创建过滤器对象。只执行一次。证明过滤器在web服务器中是单实例的
init方法: 在创建完过滤器对象之后被调用。只执行一次
doFilter方法: 执行过滤任务方法。执行多次。
destroy方法: web服务器停止或者web应用重新加载,销毁过滤器对象。
  • 过滤器编写步骤:
  1. 编写一个java类,实现Filter接口,并实现其中的所有方法
  1. 在web.xml文件中配置Filter
【01|01 过滤器基础】过滤器的配置(在web.xml中)
FirstFilter FirstFilter com.xxjqr.servlet_study.filter.FirstFilter FirstFilter /FirstFilterServlet

01|01 过滤器基础
文章图片
Paste_Image.png 过滤器的生命周期
public class FirstFilter implements Filter {public FirstFilter() { System.out.println("1.filter创建了"); }public void init(FilterConfig fConfig) throws ServletException { System.out.println("2.filter初始化了"); }public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("3.过滤器正在执行过滤任务-过滤请求"); //放行 /*FilterChian就是过滤器链对象,其中这个doFilter方法作用是把请求或响应交给下一个过滤器,如果没有下一个过滤器,就访问到目标资源了或返回给用户显示。 * 过滤器链的过滤执行顺序由web.xml文件中过滤器的filter-mapping的顺序决定的,先配置的先被访问到!!!! */ chain.doFilter(request, response); System.out.println("5.过滤器正在执行过滤任务-过滤响应"); }/** * 过滤器对象销毁的时候才会调用 *web项目重新部署或者tomcat服务器停止了才会销毁过滤器对象 */ public void destroy() { System.out.println("6.过滤器销毁"); } }

生命周期第4步

01|01 过滤器基础
文章图片

    推荐阅读