1.在web.xml 文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所能拦截的资源。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<
filter
>
<!-- 用于为过滤器指定一个名字,该元素的内容不能为空。 -->
<
filter-name
>filterName</
filter-name
>
<!--
元素用于指定过滤器的完整的限定类名。
-->
<
filter-class
>自定义类的名称</
filter-class
>
<!--
init-param用于为过滤器指定初始化参数,
它的子元素<param-name>指定参数的名字,
<param-value>指定参数的值。在过滤器中,
可以使用FilterConfig接口对象来访问初始化参数。 -->
<
init-param
>
<
param-name
>word_file</
param-name
>
<
param-value
>/WEB-INF/word.txt</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<!-- 子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字 -->
<
filter-name
>filterName</
filter-name
>
<!-- 设置 filter 所拦截的请求路径(过滤器关联的URL样式) -->
<
url-pattern
>/*</
url-pattern
>
<
dispatcher
>FORWARD</
dispatcher
>
<
dispatcher
>REQUEST</
dispatcher
>
</
filter-mapping
>
|
<dispatcher> 子元素可以设置的值及其意义
(1)REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。
(2)INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
(3)FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
(4)ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。