Frage zu Servlets
-
Hallo!
Ich hoffe mal das ich meine Frage verständlich formuliert bekomme...
--------------------------------------------------------------------Ich arbeite an einem Servlet das die Verwaltung von Lieferantengruppen
auf Abteilungsebene ermöglicht. Als Oberfläche dient ein Applet, das mit
dem Servlet über ein serialisiertes Objekt kommuniziert.Bei einem Request vom Applet prüfe ich ob schon eine Session vorhanden ist,
sonst lege ich eine an. Aus der Session lese ich ein Attribut welches die
ID des aktuellen Benutzers enthält. Falls noch keine Session da war, lese ich
die ID aus einem Cookie und packe sie dann in meine neue Session.Soweit, so gut. Jetzt kommt meine Frage:
Ich brauche die ID für einige Datenbankzugriffe. Wenn das Servlet von mehreren
Clients angesprochen wird, behandelt es die Anfragen standardmäßig in mehreren
Threads, oder? Wenn ich nun in meiner Servletklasse ein Attribut wieprivate String ID;
anlege und darin die Benutzeridentifikation aus der Session ablege, bleibt
sie dann für den jeweiligen Thread erhalten, oder wird sie in jedem neuen Thread überschrieben?Wäre es klüger die ID in unten stehender Form an die DB-Funktionen zu übergeben?
meineDbFunktion(serialisiertesObjekt, (String)session.getAttribut("UID"));
Gruß,
Stefan
-
Vielleicht hast du dein Problem ja in der Zwischnezeit gelöst.
Prinzipiell kannst du deine ID gefahrlos aus der Session auslesen. Probleme bekommst du nur dann, wenn du diese in ein Attribut deiner Servlet Klasse speicherst. Das Attribut wird dann bei konkurrierenden Aufrufen überschrieben.
Das heisst, du solltest deine Werte höchstens in Variablen der Methoden speichern./Dirk