如何在 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 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始使用
廣告
© . All rights reserved.