2012-11-02 70 views

回答

16

環境條目可通過JNDI獲得,當您直接在手中沒有ServletContext時可能會有用,例如EJBsweb.xml中的那個實際上是覆蓋環境條件的優先鏈中的最後一個。它們通常在服務器自己的配置中定義。因此,如果打算從Web應用覆蓋服務器指定的環境條目,那麼可以通過web.xml完成。

上下文參數實際上是特定於webapp本身的。他們只有當你手上有ServletContext時纔可用,通常只在filters,servlets(並且本質上也是JSPs通過${initParam.someName}EL)和listeners內。它們應該用於爲在Web應用程序中運行的篩選器,servlet和/或偵聽器提供配置參數。通過JNDI提供它們是沒有多大意義的,這對於簡單目的來說是一個過於複雜的過程。

+0

我還是很困惑。假設我想存儲我的數據庫連接細節,例如?我應該從這2箇中使用什麼?我打算在同一個Tomcat上多次安裝我的應用程序。 – Wouter

+0

@Wouter環境條目的範圍更廣,適用於在該Tomcat上運行的所有Web應用程序。 「上下文」是一個Web應用程序,映射到單個[WAR文件](https://en.wikipedia.org/wiki/WAR_%28Sun_file_format%29)。因此,如果您的數據庫只提供一個Web應用程序,請在上下文級別執行此操作。一種方法是在Web應用程序的「META-INF」文件夾的'context.xml'文件中編寫一個' ...'標記。至於你提到「在同一個Tomcat上多次安裝我的應用程序」,我不明白,沒有道理。 –

+0

@BalusC你的第一段不太清楚。如果你的意思是說環境條目的範圍比上下文參數的範圍更廣泛,那麼比說得更明確些。也許引用[Tomcat文檔](https://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html#Environment_Entries):「對所有Web應用程序都可見」 –