# Instanzvariable in Servlet Ja/Nein?



## Macro (19. Sep 2005)

Während meines Praktikums hab ich mal aufgeschnappt man darf/sollte keine Instanzvariablen in Servlets verwenden. Leider hatte damals keiner mehr Zeit mir das zu Erklären (war am letzten Tag  ), weshalb ich jetzt einfach mal hier frage.

Darf man Instanzvariablen in Servlets verwenden? +Begründung

thx


----------



## Bleiglanz (19. Sep 2005)

ja, darf man verwenden

aber:

iA gibts nur eine Instanz davon, d.h. alle User "teilen" sich diese Variable (zugriff muss also synchronized sein), gibt nicht allzuviele Anwendungsfälle dafür


----------



## Macro (19. Sep 2005)

dankeschön


----------



## Rodion (20. Sep 2005)

Du kannst dein Servlet als "SingleThreadModel" deklarieren. D.h.

public class YourServlet extends HttpServlet implements SingleThreadModel { ... }

Bei dem Fall wird dein Servlet von dem Container synchronisiert. Der Controller wird nicht für jeden Servlet ein neues Thread erstellen, sondern alle Abfragen nach ein andere laufen lassen.

Da es natürlich einen großen Einfluss auf Performance hat, wird das Modell von Sun nicht empfohlen.


----------

