FilterConfig接口
用户在web.xml中配置Filter时,可以通过<init-param>来为Filter配置一些初始化参数,当WEB容器创建Filter实例时,将会调用其init方法;而<init-param>配置的参数将会封装到一个FilterConfig对象中,并传递个init的FilterConfig参数。因此在init方法中可以通过FilterConfig的方法来获取这些参数:
其方法有:
String getFilterName():得到filter的名称。
String getInitParameter(String name): 返回在部署描述中指定名称的初始化参数的值。如果不存在返回null.
Enumeration getInitParameterNames():返回过滤器的所有初始化参数的名字的枚举集合。
public ServletContext getServletContext():返回Servlet上下文对象的引用。
/
/示例
<filter>
<filter-name>FilterUtils</filter-name>
<filter-class>cn.itcast.utils.FilterUtils</filter-class>
<init-param>
<param-name>param1</param-name>
<param-value>value1</param-value>
</init-param>
<init-param>
<param-name>param2</param-name>
<param-value>value2</param-value>
</init-param>
<init-param>
<param-name>param3</param-name>
<param-value>value3</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterUtils</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
public class FilterUtils implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destory....");
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("do Filter....");
}
@Override
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("init....");
System.out.println("Filter Name is:"+config.getFilterName());
Enumeration enumation = config.getInitParameterNames();
String name;
while(enumation.hasMoreElements()){
name = (String) enumation.nextElement();
System.out.println("name is:"+name);
System.out.println("value is:"+config.getInitParameter(name));
}
}
}
init....
Filter Name is:FilterUtils
name is:param1
value is:value1
name is:param2
value is:value2
name is:param3
value is:value3