FilterConfig对象
FilterConfig对象,过滤器配置对象,用于加载过滤器的参数配置
过滤器参数使用:
1. 在web.xml文件中配置
<!-- 过滤器配置 -->
<filter>
<!-- 内部名称 -->
<filter-name>HelloFilter</filter-name>
<!-- 类全名:包+简单类名 -->
<filter-class>com.xxjqr.servlet_study.filter.FirstFilter</filter-class>
<init-param>
<param-name>AAA</param-name>
<param-value>AAA'value</param-value>
</init-param>
<init-param>
<param-name>BBB</param-name>
<param-value>BBB'value</param-value>
</init-param>
</filter>
2. 在filter中使用
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("2. Filter生命周期-init方法");
/**
* 通过FilterConfig对象得到参数配置信息
*/
//得到一个参数
System.out.println(filterConfig.getInitParameter("AAA"));
Enumeration<String> enums = filterConfig.getInitParameterNames();
//遍历所有参数
while(enums.hasMoreElements()){
String paramName = enums.nextElement();
String paramValue = filterConfig.getInitParameter(paramName);
System.out.println(paramName+"="+paramValue);
}
}
过滤器链
过滤器链
doFilter(ServletRequest request, ServletResponse response, FilterChain chain): 执行过滤任务
参数一: ServletRequest是HttpServletRequest的父接口。实际上传入的是HttpServletRequest接口的实现类。
参数二: ServletResponse是HttpServletResponse的父接口。实际上传入HttpServletResponse接口的实现类。
参数三: FilterChain 过滤器链接口
doFilter(ServletRequest request, ServletResponse response):
执行过滤器链中的下一个过滤器,如果没有下一个过滤器则执行目标资源。
注意:过滤器链中的过滤器执行顺序问题:由web.xml中filter-mapping的配置决定顺序。先配置的优先被执行(前面的先执行)