如何在 JSP 中定义多个过滤器?


您的 web 应用程序可通过特定目的定义多个不同的过滤器。考虑一下,您定义两个过滤器AuthenFilterLogFilter。其余过程将保持与上面说明的相同,但您需要创建不同的映射,如下所示 −

<filter>
   <filter-name>LogFilter</filter-name>
   <filter-class>LogFilter</filter-class>
   <init-param>
      <param-name>test-param</param-name>
      <param-value>Initialization Paramter</param-value>
   </init-param>
</filter>
<filter>
   <filter-name>AuthenFilter</filter-name>
   <filter-class>AuthenFilter</filter-class>
   <init-param>
      <param-name>test-param</param-name>
      <param-value>Initialization Paramter</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

过滤器应用程序顺序

web.xml 中 filter-mapping 元素的顺序确定了 web 容器将过滤器应用于 servlet 或 JSP 的顺序。为颠倒过滤器的顺序,您只需要颠倒 web.xml 文件中的 filter-mapping 元素。

例如,上述示例会先应用 LogFilter 然后它会将 AuthenFilter 应用到任何 servlet 或 JSP;以下示例会颠倒顺序 −

<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
   <filter-name>LogFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

更新于: 2019 年 7 月 30 日

701 次浏览

开启您的 职业生涯

完成课程获得认证

开始使用
广告