1. 什么是过滤器Filter:
可以过滤从客户端向服务器发送的请求.
2. 过滤器的使用:
进行IP的过滤,脏话过滤,自动登录,响应压缩...
3. 使用过滤器:
编写一个类实现Filter接口:
4. 过滤器的生命周期:
1. 服务器启动时创建并根据 web.xml 中声明的 filter 顺序依次实例化 filter。
2. init(FilterConfig) 来初始化过滤器
3. 执行 : doFilter()方法执行(放行) 相当于servlet中的service()方法
4. 服务器关闭时销毁 destroy()方法执行
实例化和初始化的操作只会在Filter启动时执行,而且只会执行一次。
5. 过滤器链:
过滤器链中的过滤器的执行的顺序与<filter-mapping>的配置顺序有关(过滤器链(执行顺序依url-parrent配置先后顺序))
doFilter(request,response); -- 放行,放行到下一个过滤器中,如果没有下一个过滤器,到达目标资源.
6. chain.doFilter()方法 :
下一个有过滤器就执行过滤器,没有就释放到当前浏览页面
这个方法的请求和响应参数的类型是 ServletRequest 和 ServletResponse,也就是说,过滤器的使用并不依赖于具体的协议。
7. Filter相关的配置:
<url-pattern>的配置: * 完全路径匹配 :以 / 开始 /demo4/demo1.jsp * 目录匹配 :以 / 开始 以 * 结束. /* /demo1/* * 扩展名匹配 :不能以 / 开始 以 * 开始. *.do *.action <servlet-name>的配置:根据Servlet的名称拦截Servlet. <dispatcher>的配置: * REQUEST :默认值. * FORWARD :转发. * INCLUDE :包含. * ERROR :错误页面跳转.(全局错误页面)