Für den allgemeinen Fall - nicht ausgeschüttete, multi-threaded, ist sichergestellt, dass es nur eine Instanz des Servlets sein wird. Von der Servlet 3.0-Spezifikation:
2,1 Anforderungsverarbeitung Methoden
Die grundlegende Servlet-Schnittstelle eine Service-Methode für den Umgang mit Client-Anforderungen definiert. Diese Methode wird für jede Anforderung aufgerufen, die der Servlet-Container an eine Instanz eines Servlets weiterleitet. Die Verarbeitung von gleichzeitigen Anforderungen an eine Webanwendung erfordert im Allgemeinen, dass die Webentwickler-Designservlets mehrere Threads verarbeiten können, die die Servicemethode zu einem bestimmten Zeitpunkt innerhalb von ausführen. Im Allgemeinen behandelt der Web-Container gleichzeitige Anforderungen an das gleiche Servlet durch gleichzeitige Ausführung der Service-Methode auf verschiedenen Threads durch .
2.2 Anzahl der Instanzen
Die Servlet Erklärung, die entweder über die Anmerkung wird, wie in Kapitel 8, beschrieben „Annotationen und Steckbarkeit“ oder einen Teil des Deployment Descriptor der Web Anwendung die Servlet enthält, Wie in Kapitel 14, "Deployment Deskriptor" beschrieben, wird gesteuert, wie der Servlet-Container Instanzen des Servlets bereitstellt. Für ein Servlet, das nicht in einer verteilten Umgebung gehostet wird (Standardeinstellung), muss der Servlet Container nur eine Instanz pro Servlet-Deklaration verwenden. Für ein Servlet , das die SingleThreadModel-Schnittstelle implementiert, kann der Servlet-Container jedoch mehrere Instanzen instanziieren, um eine schwere Anforderung zu verarbeiten und Anfragen an eine bestimmte Instanz zu serialisieren.
In dem Fall, dass ein Servlet als Teil einer Anwendung markiert in dem Deployment Descriptor als ausschüttungs bereitgestellt wurde, kann ein Behälter nur eine Instanz pro Servlet-Deklaration pro Java Virtual Machine (JVM ™) 1 hat. Wenn das Servlet in einer verteilbaren Anwendung jedoch die Schnittstelle SingleThreadModel implementiert, kann der Container mehrere Instanzen dieses Servlet in jeder JVM des Containers instanziieren.
Ist die Map als Instanzvariable definiert? – JoseK
@JoseK: Ja, geschützt (nicht statisch). –
Related: http://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables – BalusC