JavaWeb-配置Filter的dispatcher节点
<dispatcher>元素:
指定过滤器所拦截的资源被Servlet容器调用的方式。可以是REQUEST,INCLUDE和ERROR之一,默认REQUEST.
可以设置多个<dispatcher>子元素用来指定Filter对资源的多种调用方式进行拦截
<1>REQUEST:当用户直接访问页面时,Web容器将会调用过滤器,如果目标资源是通过RequestDispatcher的include()或forward()方法访问页面
<2>FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。或<jsp:forward page="/..."/>或通过page指令的errorPage转发页面。<%page errorPage="test.jsp"%>
<3>INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
或<jsp:include file="/...">
<4>ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器被调用。除此之外,过滤器不会被调用。
在web.xml文件中通过error-page节点进行声明:
<error-page> <exception-type>java.lang.ArithmeticException</exception-type> <location>/WEB-INF/error.jsp</location> </error-page>
<filter-mapping> <filter-name>PassWordFilter</filter-name> <url-pattern>/filter/hello.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping>