Jar 掃描過濾器元件

目錄

簡介

Jar 掃描過濾器元素表示元件,用於在結果傳回應用程式之前,過濾 Jar 掃描器 的結果。通常用於略過掃描已知與某些或所有掃描類型無關的 JAR。

Jar 掃描過濾器元素可能會巢狀在 Jar 掃描器 元件內。

例如,您可以在掃描可插入功能時,指定其他 JAR 檔案

<Context>
  ...
  <JarScanner>
    <JarScanFilter
        pluggabilityScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan},
                       my_pluggable_feature.jar"/>
  </JarScanner>
  ...
</Context>

如果未包含 Jar 掃描過濾器元素,系統會自動建立預設的 Jar 掃描過濾器組態,這對於大多數需求而言已足夠。

屬性

常見屬性

所有 Jar 掃描過濾器實作都支援下列屬性

屬性 說明
className

要使用的實作的 Java 類別名稱。此類別必須實作 org.apache.tomcat.JarScanFilter 介面。如果未指定,將會使用標準值(定義如下)。

標準實作

Jar 掃描篩選器 的標準實作是 org.apache.tomcat.util.scan.StandardJarScanFilter。它所支援的額外屬性(除了上面列出的共用屬性之外)列於表格中。

pluggabilitySkippluggabilityScantldSkiptldScan 屬性的值是檔案名稱樣式的清單。樣式以逗號 (',') 分隔。樣式中開頭和結尾的空白字元會被忽略。樣式會區分大小寫進行比對。支援下列兩個特殊字元

  • '*' - 表示零個或多個字元,
  • '?' - 表示一個且只有一個字元。

請注意,將 JAR 排除在可插入性掃描之外,會阻止 ServletContainerInitializer 從 Web 應用程式 JAR(例如位於 /WEB-INF/lib 中的 JAR)載入,但不會阻止 ServletContainerInitializer 從容器(Tomcat)載入。若要阻止容器提供的 ServletContainerInitializer 載入,請使用 ContextcontainerSciFilter 屬性。

屬性 說明
pluggabilitySkip

掃描 Servlet 3.0 規格引入的可插入功能時要略過的 JAR 檔案名稱樣式的逗號分隔清單。如果未指定,預設值會從 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 系統屬性取得。

pluggabilityScan

掃描 Servlet 3.0 規格引入的可插入功能時要掃描的 JAR 檔案名稱樣式的逗號分隔清單。如果未指定,預設值會從 tomcat.util.scan.StandardJarScanFilter.jarsToScan 系統屬性取得。

defaultPluggabilityScan

控制在掃描可插入功能時,JAR 預設是掃描還是略過。如果為 true,當 JAR 的名稱與任何 pluggabilitySkip 樣式都不相符,或與任何 pluggabilityScan 樣式相符時,就會掃描 JAR。如果為 false,當 JAR 的名稱與任何 pluggabilityScan 樣式相符,且與任何 pluggabilitySkip 樣式都不相符時,就會掃描 JAR。如果未指定,預設值為 true

tldSkip

掃描標籤庫 (TLD) 時要略過的 JAR 檔案名稱樣式的逗號分隔清單。如果未指定,預設值會從 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 系統屬性取得。

tldScan

掃描標籤庫 (TLD) 時要掃描的 JAR 檔案名稱樣式的逗號分隔清單。如果未指定,預設值會從 tomcat.util.scan.StandardJarScanFilter.jarsToScan 系統屬性取得。

defaultTldScan

在掃描 TLD 時,控制是否預設掃描或略過 JAR。如果為 true,當 JAR 名稱與任何 tldSkip 模式都不相符或與任何 tldScan 模式相符時,將掃描 JAR。如果為 false,當 JAR 名稱與任何 tldScan 模式相符且與任何 tldSkip 模式都不相符時,將掃描 JAR。如果未指定,預設值為 true

巢狀元件

不得在 Jar 掃描篩選器 元素內嵌任何元件。

特殊功能

Jar 掃描篩選器 元素不具有任何特殊功能。