zoukankan      html  css  js  c++  java
  • 自定义Filter

    写自定义Filter的时候遇到个问题,标记一下···

    自定义Filter必须实现Filter接口,还需要实现init(),doFilter(),destroy()方法,其中init()方法和destroy()分别用来初始化和销毁时调用,doFilter()方法用来实现过滤,下面是实现代码:

    [java] view plain copy
     print?
    1. import java.io.IOException;  
    2. import javax.servlet.Filter;  
    3. import javax.servlet.FilterChain;  
    4. import javax.servlet.FilterConfig;  
    5. import javax.servlet.ServletException;  
    6. import javax.servlet.ServletRequest;  
    7. import javax.servlet.ServletResponse;  
    8.   
    9. public class MyFilter implements Filter {  
    10.   
    11.     @Override  
    12.     public void destroy() {  
    13.         System.out.println("销毁代码");  
    14.     }  
    15.   
    16.     @Override  
    17.     public void doFilter(ServletRequest arg0, ServletResponse arg1,  
    18.             FilterChain arg2) throws IOException, ServletException {  
    19.         System.out.println("执行过滤");  
    20.         arg2.doFilter(arg0, arg1);  //调用下一个Filter,如果有的话  
    21.     }  
    22.   
    23.     @Override  
    24.     public void init(FilterConfig arg0) throws ServletException {  
    25.         System.out.println("初始化代码");  
    26.     }  
    27. }  
    web.xml中要配置Filter:

    [html] view plain copy
     print?
    1. <filter>  
    2.     <filter-name>MyFilter</filter-name>  
    3.     <filter-class>test.MyFilter</filter-class>  
    4.   </filter>  
    5.     
    6.   <filter-mapping>  
    7.     <filter-name>MyFilter</filter-name>  
    8.     <url-pattern>/*</url-pattern>  
    9.   </filter-mapping>  
    运行程序的时候发现后台只打印出了“执行过滤”,查了一下,原来这跟Filter的生命周期有关,Filter从生成到销毁的步骤有:1、服务器启动时就加载Filter;2、加载完成后,立即调用init()方法来进行初始化(所以在启动服务器的时候就可以看到后台打印出了“初始化代码”);3、调用doFilter()方法;4、调用destroy()方法(所以再次启动服务器就可以看到打印出了“销毁代码”);5、最后垃圾清理。
  • 相关阅读:
    Flink延时监控
    FLink全链路时延—测量方式
    Linux搭建SFTP服务器
    Red Hat:USING AMQ STREAMS WITH MIRRORMAKER 2.0
    idea 搭建运行kafka 源码
    Kafka Connect Concepts
    Java IPv6相关属性preferIPv4Stack、preferIPv6Addresses介绍
    如何确定Flink反压的根源?How to identify the source of backpressure?
    如何成为 Apache 项目的 Committer
    Apache Kafka KIP 介绍
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317886.html
Copyright © 2011-2022 走看看