过滤器初始化参数
同servlet一样,filter也可以通过web.xml进行初始化配置。在初始化时,将参数封装进入FilterConfig并在调用init方法时作为实参传入,我们可以在init方法中获取参数。
一、FilterConfig接口为我们的功能
代码语言:javascript复制String getFilterName();//得到filter的名称。
String getInitParameter(String name);//返回定名称的初始化参数的值。如果不存在返回null.
Enumeration getInitParameterNames();//返回过滤器的所有初始化参数的名字的枚举集合。
public ServletContext getServletContext();//返回Servlet上下文对象的引用。
二、配置Filter初始化参数
代码语言:javascript复制<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>
三、读取初始化参数
代码语言:javascript复制/**
* @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));
}
}