web.xml中的filter标签

Posted 贝隆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web.xml中的filter标签相关的知识,希望对你有一定的参考价值。

filter标签说明

filter和filter-mapping是成对出现的:

  <!--映射过滤器-->
   <filter-mapping>
       <filter-name>FilterDemo02</filter-name>
       <!--“/*”表示拦截所有的请求 -->
       <url-pattern>/*</url-pattern>
   </filter-mapping>

<filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径

<filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字

<url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)  

<servlet-name>指定过滤器所拦截的Servlet名称。  

<dispatcher>指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个<dispatcher> 子元素用来指定 Filter 对资源的多种调用方式进行拦截。如下:

  <filter-mapping>
    <filter-name>testFilter</filter-name>
    <url-pattern>/index.jsp</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

<dispatcher> 子元素可以设置的值及其意义:

REQUEST:当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问时,那么该过滤器就不会被调用。
INCLUDE:如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
FORWARD:如果目标资源是通过RequestDispatcher的forward()方法访问时,那么该过滤器将被调用,除此之外,该过滤器不会被调用。
ERROR:如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。

 



以上是关于web.xml中的filter标签的主要内容,如果未能解决你的问题,请参考以下文章

Web.xml中Filter过滤器标签几个说明

web.xml中web-app标签标红问题

web.xml中一个filter配置多个url-pattern

Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签

Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签

Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签 《转载》