2013-07-09 12 views
11

Werden statische Java-Variablen in allen Sitzungen mit derselben Webanwendung gemeinsam genutzt oder erhält jede Sitzung ihre eigene Version der statischen Variablen?Tomcat: Java Static Variable Scope, Anwendung oder Sitzung breit?

Um es anders auszudrücken, hat Tomcat eine neue Gruppe von Klassen für jede Sitzung oder nur ein Set für die gesamte Webanwendung erstellt?

+0

statische Klasse-Niveau sind, werden sie nur dann erstellt werden, wenn die Klasse Halter geladen ist .. sie gehören nicht zu Objekten – nachokk

+0

Was Sie tun gemein nach Sitzung? Eine HTTP-Sitzung? Das ist nur ein Objekt, hat nichts mit statischen Variablen/Klassenladen zu tun. –

+0

Ich denke, dass sie eher eine Anfrage als eine Sitzung meinten – malhal

Antwort

14

Tomcat erstellt eine ClassLoader für jede Webanwendung, d. H. WAR-Datei oder Kontext. So wird jeder Class einmal für die Webanwendung geladen. Daher werden statische Variablen über mehrere Sitzungen und Anforderungen verteilt.

Referenzen:

3

Statische Variablen werden über die Sitzungen verteilt. Seien Sie vorsichtig bei der Verwendung von statischen Variablen.