Bean in der init-Methode des Servlets instanzieren

Status
Nicht offen für weitere Antworten.

joe89

Aktives Mitglied
Im Rahmen des mvc2 Modells wird vorgeschlagen,Berechnungen, Prüfungen o.Ä. in Beans auszulagern.

Für ein Loginverfahren möchte ich die Anmeldedaten in einer Bean prüfen. Zu Beginn einer Webapplikation gibt
diese Bean natürlich noch nicht.
Ist es ratsam, die Bean in der init-Methode eines Servlets zu instanzieren ?

Wenn zwei oder mehr User sich gleichzeitig einloggen, werden die getter und setter Methoden der Bean nicht korrekt arbeiten. Reicht es aus, die getter und setter Methoden in Blocks zu setzen, um Kollisionen zu vermeiden ?

Gruss und Danke

joe89
 
definiere 'in Blocks setzen'?

wie wärs mit einem Bean pro User/ Request, also auch erst dann erstellen?
 
definiere 'in Blocks setzen'?

Ich hatte hatte ich an die Verwendung von "synchronized" gedacht.

wie wärs mit einem Bean pro User/ Request, also auch erst dann erstellen?

Mein erster Ansatz sah vor für jeden user (bzw. jede neue Session) eine Bean zu erstellen. Ich bin dann aber davon abgekommen, weil mir die Verwaltung zu aufwändig erschien. Für jede neue Session müsste dann eine Bean mit einzigartigem Namen erstellt werden.

Aus diesem Grund dachte ich, dass es sinnvoller sei, nur eine einzige Bean zu haben, die alle Anfragen prüft.

Gruss

Joe89
 
joe89 hat gesagt.:
definiere 'in Blocks setzen'?

Ich hatte hatte ich an die Verwendung von "synchronized" gedacht.
...

Synchronized bringt dir bei Beans in Verbindung mit Servlet nichts, da du bei X Zugriffen X Instanzen einer Bean erstellst und keine X Threads. Zudem verstehe ich nicht was du mit "...eine Bean mit einzigartigem Namen erstellt werden...".

Cu
Alex
 
da sich jeder nur um seinen Kram kümmert, ist der Verwaltungsaufwand 0,
vor allem fallen die Probleme wie synchronized weg, man spart so gesehen Verwaltungsaufwand
 
Vielen Dank für alle Antworten.

Ich beschäftige mich gerade mit der Theorie von Webanwendungen.

In einer sehr kleinen Applikation unter tomcat versuche eine Anwendung für ein Loginverfahren
zu erstellen,

Dabei möchte ich zwei Verfahren testen.

(a) in meine Login-Servlet lege ich für jeden user
- sofern es sich um eine neue Session handelt - eine Bean an. Dabei handelt es sich
um die Instanzierung einer Klasse mit getter/setter Methoden, in der ich Informationen
über den user ablege. Diese Bean lege ich in den HttpSession Context.Damit habe ich für
jeden user eine eigene Bean zu verwalten.

In einer jsp-Seite greife ich auf diese Bean zu,um die Informationen über den user
anzuzeigen.

(b) ein alternatives Konzept sieht vor, nur eine einzige Bean vorrätig zu halten. In dieser
Bean prüfe ich, ob der user zulässige Eingaben gemacht hat. In Abhängigkeit von dem Ergebnisse
versende ich eine Error oder ok-Seite. Jetzt ist es natürlich so, dass zur gleichen Zeit
mehrere User sich einloggen un damit auch zur gleichne Zeit auf dieses bean zugreifen.
Aus diesem Grund emöchte ich die Methoden (sorry nicht blöcke) als "synchronized " deklararieren.

Gruss und Danke

joe89
 
bevor das falsch verstanden wird:
es gibt in in Java wie in Programmiersprachen allgemein Blöcke ( {} ),
und man kann durchaus auch diese Blöcke synchronisieren:
synchronized(monitor){}
 
Ähm..ich glaub du solltest noch n bissl Theorie machen 🙂

Für jede Session(=User) ein User-Objekt. In der Session speicherst du dann das Userobjekt. Im Servlet speichern wird dir nicht viel helfen 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben