1.filter过滤器概述
过滤器实际上就是对web资源(HTML、CSS、Servlet、JSP)进行拦截,做一些处理后再交给下一个过滤器或servlet处理
通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理
2.filter过滤器使用场景
自动登录
统一设置编码格式
访问权限控制
敏感字符过滤等
3. 创建一个servlet
1.继承HttpServlet
2.重写doGet 和 doPost方法
3.配置web.xml文件
<filter>
<filter-name>servlet类名</filter-name>
<filter-class>com.zking.filter.EncodingFilter(servlet绝对路径)</filter-class>
</filter>
<filter-mapping>
<filter-name>servlet类名</filter-name>
<url-pattern>/*(url通配符,作用对象)</url-pattern>
</filter-mapping>
4.filter过滤器常用配置项urlPatterns
以指定资源匹配。例如"/index.jsp"
以目录匹配。例如"/servlet/*"
以后缀名匹配,例如"*.jsp"
通配符,拦截所有web资源。"/*"
5.Filter生命周期
(1)构造器:Filter的构造器在服务器启动时调用。 构造器只会调用一次,说明Filter也是单例多线程的。
(2)init():在构造器被调用后,紧接着被调用。作用:用来初始化Filter。
(3)doFilter():每一次拦截请求时都会调用。
(4)destroy方法在项目停止时调用,用来在对象被销毁前做一些收尾工作。
6.多个Filter的执行顺序
(1)在web.xml中,filter执行顺序跟<filter-mapping>的顺序有关,先声明的先执行
(2)使用注解配置的话,filter的执行顺序跟名称的字母顺序有关,例如AFilter会比BFilter先执行
(3)如果既有在web.xml中声明的Filter,也有通过注解配置的Filter,那么会优先执行web.xml中配置的Filter
7.1 Listener监听器的创建( application监听器 session监听 )
负责监听Web的各种操作,当相关的事件触发后将产生事件,并对事件进行处理。
application监听器 implements ServletContextListener
session监听 implements HttpSessionListener