使用MyEclipse创建Filter后,在web.xml中的对应配置信息就是Filter映射。Filter 的映射方式可分为两种。
1、使用通配符*拦截用户的所有请求
Filter的元素用于配置过滤器拦截的资源信息,如果想让过滤器拦截所有的请求,那么可以使用通配符*实现。
2、拦截不同方式的访问请求
在web.xml文件中,每一个元素都可以配置一个Filter所负责拦截的资源。在元素中有一个特殊的子元素 ,该元素用于指定过滤器所拦截的资源被Servlet容器调用的方式。元素的值共有四个,具体如下:
1)REQUEST
当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器将不会被调用。
2)INCLUDE
如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
3)FORWARD
如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
4)ERROR
如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。
Filter对应的请求方式有4种:request、forward、include、error
request:当用户直接请求一个网页时才会通过此filter,当用户通过RequestDispatcher(会再后面详细介绍该类的方法)的forward不会通过该filter
forward: 当用户通过RequestDispatcher的forward方法访问对应的url时才会通过该filter
include:当用户通过RequestDispatcher的include方法访问对应的url时才会通过该filter
error:当用户的请求通过错误处理机制的时候才会通过该filter(目前不准备详细论述)。