01 过滤器基础

  • 过滤器其实就是一个接口,Filter, javax.servet.Filter
  • 过滤器就是一个对象,可以在请求一个资源(静态或动态资源),或响应* * 一个资源,或请求和响应一个资源的时候,执行过滤任务!!!!
  • 过滤器如何被执行?
    过滤器也需要交给tomcat服务器运行!!!!
  1. 过滤器的生命周期

构造方法: 在web应用加载时创建过滤器对象。只执行一次。证明过滤器在web服务器中是单实例的
init方法: 在创建完过滤器对象之后被调用。只执行一次
doFilter方法: 执行过滤任务方法。执行多次。
destroy方法: web服务器停止或者web应用重新加载,销毁过滤器对象。

  • 过滤器编写步骤:
  1. 编写一个java类,实现Filter接口,并实现其中的所有方法
  1. 在web.xml文件中配置Filter

过滤器的配置(在web.xml中)

  <filter>
    <display-name>FirstFilter</display-name>
    <filter-name>FirstFilter</filter-name>
    <filter-class>com.xxjqr.servlet_study.filter.FirstFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>FirstFilter</filter-name>
    <url-pattern>/FirstFilterServlet</url-pattern><!-- 该路径是针对要过滤的servlet -->
  </filter-mapping>
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步


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 1.过滤器简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filte...
    胖先森阅读 1,164评论 0 16
  • 仅作为自己学习记录使用,文章来自: 1、http://blog.csdn.net/csh624366188/art...
    BakerZhang阅读 1,075评论 1 5
  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 7,386评论 3 56
  • 监听器(listener) 监听器简介 :监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个...
    奋斗的老王阅读 2,595评论 0 53