过滤器
1.什么是过滤器
- 过滤器的概念: 对请求和响应进行拦截或者增强的对象,就是过滤器。
Filter接口:功能——对请求和响应进行增强,或者进行拦截。
过滤器运行图解
- *Filter定义以及创建步骤介绍
package cn.itcast.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @author wjn
* 总结:过滤器书写步骤
* 第一:创建类实现接口——DemoFilter implements Filter
* 第二:过滤任务写在doFilter方法中
* 第三:web.xml中配置
*/
public class DemoFilter implements Filter{
@Override
//销毁的方法
public void destroy() {
}
@Override
//执行过滤的方法
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("DemoFilter.....doFilter....");
}
@Override
//初始化的方法
public void init(FilterConfig arg0) throws ServletException {
}
}
Filter 是在 Web 应用程序的部署描述符中配置的——过滤器创建好之后,需要在web.xml中做配置
在web.xml文件中配置过滤器
<filter>
<filter-name>DemoFilter</filter-name>
<filter-class>cn.itcast.filter.DemoFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>DemoFilter</filter-name>
<url-pattern>/1.txt</url-pattern>
</filter-mapping>
- 过滤器放行的对象:FilterChain功能介绍
- FilterChain的doFilter方法:
- 代码实现
- 过滤器放行执行过程:
FilterConfig介绍
- servletConfig对象:获取servlet相关的配置信息。– FilterConfig定义:获取filter相关的配置信息。
关于url-pattern配置
- **servlet的url-pattern:
全路径匹配——
地址栏:localhost:8080/项目根路径/资源路径 localhost:8080/itcast-filter2/1.txt
通配符的匹配——
地址栏:localhost:8080/项目根路径/abc/***
-Filter的url-pattern配置与servlet一致。
总结
总结:
过滤器执行的顺序是按照,web.xml中filter-mapping标签的书写顺序执行(从上往下执行)