Laden von globalen Resourcen im Servlet Container..?

Status
Nicht offen für weitere Antworten.

sirbender

Top Contributor
Hi,

ich habe gewisse Resourcen die jede Instanz von ServletX braucht. Diese zu laden dauert lange - ich will es also nicht bei jedem Servlet Aufruf tun muessen. Sind Servlets in einem Container komplett abgeschottet oder teilen sie sich static deklarierte Variablen?

Soll ich die Resourcen also ein einziges Mal als static final im Servlet initialisieren und alle weiteren Servlets koennen dann darauf zugreifen?

Kann ich es irgendwie schaffen, dass diese statischen Variablen/Resourcen bereits beim Deployen des WAR initialisiert werden? Was geschieht beim Deployen? Werden alle Klassen geladen? Ich denke mal beim Classloading werden keine statischen Variablen initialisiert oder?

Die statischen Variablen werden also erst initialisiert waehrend das Servlet zum erstenmal aufgerufen wird?

Danke,
sb
 
Zuletzt bearbeitet:

sirbender

Top Contributor
Danke. Das hilft mir schon sehr glaube ich. Du meinst also ich sollte lieber setAttribute benutzen anstatt statische Variablen zu definieren fuer ein bestimmtes Servlet?

Mir ist noch nicht ganz klar wann init(...) ausgefuehrt wird? Gleich nach dem Deployen oder erst wenn das Servlet zum ersten mal benutzt wird?

Danke,
sb
 

HLX

Top Contributor
Der ServletContext gilt nur für eine einzelne Anwendung auf dem Tomcat, statische variablen gelten für die ganze VM, also anwendungsübergreifend. Würdest du dein Servlet gleichzeitig in einer zweiten Anwendung auf dem gleichen Tomcat verwenden, könnte eine statische Variable von beiden Anwendungen modifiziert werden. Die setAttribute-Methode ermöglichst das Halten von anwendungsweiten Variablen.

init() wird bei der Initialisierung des Servlet aufgerufen. Normalerweise geschieht diese beim ersten Zugriff auf das Servlet. Über das Tag <load-on-startup> in der web.xml kannst du angeben, dass das Servlet beim Start der Anwendung (sprich beim Deployment oder beim Serverstart) initialisiert werden soll.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben