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、最后垃圾清理。
  • 相关阅读:
    [转]ubuntu的which、whereis、locate和find命令
    [转]理解SSL(https)中的对称加密与非对称加密
    SSL交互过程
    [转]程序开发基础学习二(C++ Google Style 命名规则)
    函数内动态分配内存
    sizeof和strlen
    Sublime Text 3 安装Package Control
    [转]使用Openssl的AES加密算法
    正则表达式
    论文书写常见问题与技巧
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317886.html
Copyright © 2011-2022 走看看