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>

  

原文地址:https://www.cnblogs.com/yangHS/p/11195625.html