2012-11-02 4 views

Antwort

16

Umgebungseinträge sind über JNDI verfügbar, was nützlich sein kann, wenn Sie kein ServletContext direkt zur Hand haben, wie zum Beispiel in EJBs. Die in der web.xml ist tatsächlich die letzte in der Vorrangkette, um die gesamte Umgebung zu übersteuern. Sie werden normalerweise in der Serverkonfiguration definiert. Wenn also ein Server-spezifizierter Umgebungseintrag von der Webanwendung an überschrieben werden soll, könnte dies über web.xml erfolgen.

Kontextparameter sind wirklich spezifisch für die Webanwendung selbst. Sie sind nur verfügbar, wenn Sie eine ServletContext direkt zur Hand haben, normalerweise nur innerhalb von filters, servlets (und inhärent auch JSPs über ${initParam.someName} in EL) und listeners. Sie sollen verwendet werden, um Konfigurationsparameter für Filter, Servlets und/oder Listener bereitzustellen, die in der Webanwendung ausgeführt werden. Es würde nicht viel Sinn machen, sie durch JNDI zu liefern, was ein zu komplizierter Prozess für den einfachen Zweck ist.

+0

Ich bin immer noch verwirrt. Angenommen, ich möchte beispielsweise meine Datenbankverbindungsdetails speichern? Was soll ich aus diesen 2 verwenden? Ich beabsichtige, meine App mehr als einmal auf demselben Tomcat zu installieren. – Wouter

+0

@Wouter Environment-Einträge haben einen größeren Umfang und sind für alle Webanwendungen verfügbar, die auf diesem Tomcat ausgeführt werden. Ein "Kontext" ist eine einzelne Web-App, die auf eine einzige [WAR-Datei] (https://en.wikipedia.org/wiki/WAR_%28Sun_file_format%29) verweist. Wenn Ihre Datenbank also nur eine einzelne Web-App bedient, tun Sie dies auf der Ebene "Kontext". Eine Möglichkeit dazu ist das Schreiben eines ' ...' -Tags in die 'context.xml'-Datei im' META-INF'-Ordner Ihrer Webanwendung. Was Ihre Erwähnung von "Installation meiner App mehr als einmal auf dem gleichen Tomcat" angeht, verstehe ich nicht, ergibt keinen Sinn. –

+0

@BalusC Ihr erster Absatz ist nicht ganz klar. Wenn Sie sagen wollen, dass Environment Entries einen größeren Umfang als Context Parameters haben, dann sagen Sie das explizit. Vielleicht Zitat [das Tomcat-Dokument] (https://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html#Environment_Entries): "sichtbar für alle Web-Anwendungen" –