监听器
Fileter 接口
所有的过滤器都要事先javax.servlet.Fileter . 这个接口包含了三个方法,分别为:doFileter , init , destory
public viod doFileter(ServletRequest request,ServletResponse response,FilterChain chain) throws ServletException,IOException
每当调用一个过滤器(每次请求与此过滤器相关的servlet或JSP页面)时,就执行doFileter方法. 这是这个方法包含了大部分的过滤逻
public void init(FileterConfig config) throws ServletException
该方法并不是每次调用过滤器是都会执行,他只会在过滤器第一次初始化时执行.所以对于一些简单的过滤器我们常常会提供一个空的方法体.但若有以下来那个原因就需要使用这个方法:
1 : FilterConfig 对象提供对Servlet环境及web.xml文件中指派的过滤器名的访问.因此普遍的方法是利用init将FilterCinfig 对象存放在一个字段中,以便doFilter方能够访问Servlet环境或过滤器名.
2 : FileterConfig对象具有一个getInitParameter方法,它能够访问部署描述文件(web.xml)中分配的过滤器初始化参数
public void doDstory()
大多数的过滤器简单的为此方法提供一个空方法体,不过,可利用他完成诸如关闭过滤器是用的文件或数据库连接池登清除任务.
配置过滤器
和Servlet一样,过滤器也是Web应用程序的一个组件,因此过滤器有需要在Web应用程序的配置文件web.xml中,通过配置进行部署,而且配置过滤器的内容和格式和配置Servlet非常的相似
过滤器的配置包括两个部分,第一个部分式过滤器在Web应用程序中的定义用<filter>元素表示,主要包括<filter-name>和<filter-class>两个必要的元素,以及<init-param> .<icon> . <display-name> . <description>这4个可选的子元素;另一部分是对过滤器过滤规则的配置,由<filter-mapping>元素表示
Filter 元素
(1) icon |
这是一个可选元素,它声明IDE可以使用一个图像文件 |
(2) filter-name |
这是一个必须的元素,他给过滤器配置一个选定的名字 |
(3) display-name |
这是一个可选的元素,他给出IDE使用的段名称 |
(4) description |
这是一个可u型俺的元素,他给出IDE的信息,提供文本文档 |
(5) filter-class |
这是一个必须的元素,他指定过滤器实现类的完全限定名 |
(6) init-param |
这是一个可选的元素,它定义可以利用FilterConfig的getInitparameter方法读取的初始化参数. 单个过滤器可包含包括多个init-param元素 |
Filter-mapping 元素
Filter-mapping 元素位于web.xml文件中filter元素之后Servlet元素之前,它包含如下三个可能的子元素:
(1)filter-name:这个必须的元素必须与filter元素声明是给予的过滤器名称相匹配
(2)url-pattern:此元素声明一个斜杠(/)开始的模式,他指定过滤器的应用的URL.所有的filter-mappint元素必须提供url-pattern货servlet-name.但是不能对单个filter-mapping元素提供多个url-pattern.如果希望过滤器使用多个模式,可重复中整个filter-mapping元素
(3)Servlet-name;此元素给出一个名称,次民初必须与利用Servlet元素提供多个Servlet-那么元素项或者JSP页面名称相匹配.但不能给单个的filter-mapping元素提供多个Servlet-name元素项.如果希望过滤器使用多个Servlet名,可重复这个filter-mapping元素