zl程序教程

您现在的位置是:首页 >  Java

当前栏目

大数据必学Java基础(一百一十):过滤器初始化参数

2023-02-18 16:39:21 时间

过滤器初始化参数

同servlet一样,filter也可以通过web.xml进行初始化配置。在初始化时,将参数封装进入FilterConfig并在调用init方法时作为实参传入,我们可以在init方法中获取参数。

一、FilterConfig接口为我们的功能

String getFilterName();//得到filter的名称。

 
String getInitParameter(String   name);//返回定名称的初始化参数的值。如果不存在返回null.

 
Enumeration   getInitParameterNames();//返回过滤器的所有初始化参数的名字的枚举集合。

 
public ServletContext   getServletContext();//返回Servlet上下文对象的引用。

二、配置Filter初始化参数

<filter>
        <filter-name>filter1</filter-name>
        <filter-class>com.lanson.filter.MyFilter1</filter-class>
        <init-param>
            <param-name>realname</param-name>
            <param-value>xiaoming</param-value>
        </init-param>
        <init-param>
            <param-name>gender</param-name>
            <param-value>boy</param-value>
        </init-param>
        <init-param>
            <param-name>age</param-name>
            <param-value>10</param-value>
        </init-param>
        <init-param>
            <param-name>charset</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>

三、读取初始化参数

/**
 * @Author: Lansonli
 * @Description: MircoMessage:Mark_7001
 */
public class MyFilter1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 获取初始化的一些参数
        String realname = filterConfig.getInitParameter("realname");
        System.out.println("realname:"+realname);
        Enumeration<String> pNames = filterConfig.getInitParameterNames();
        while(pNames.hasMoreElements()){
            String pName = pNames.nextElement();
            System.out.println(pName+":"+filterConfig.getInitParameter(pName));
        }
    }