[J2EE] Session-Save Static-Objects?

Status
Nicht offen für weitere Antworten.
M

MattyDE

Gast
Hallo Leute.. ich hab da mal ne Frage bezüglich folgenden UseCases:

In einer Web-Anwendung soll einem User ein "Land" zugeordnet sein (beinflusst dann die Währung, Temperatur-Einheit, Sprache der Oberfläche usw.usf.).

Diese Information führe ich ja "am Client" über eine User-Session mit. Doch wenn jetzt ein Request an den Server geht will ich ja auch in der Business-Logic darauf reagieren. Also muss ich die Info aus der Session holen (alles kein Problem) und meinen Klassen verfügbar machen.

Und genau da ist jetzt der Knackpunkt ;o) .. Wie schaffe ich es dass ich bspw. die Info welche Sprache er nutzen soll nicht jeder Klasse übergeben muss (im Konstruktur bspw.) sondern diese Information jeder Klasse "automatisch" verfügbar ist?

Mir ist da die Möglichkeit über ein Static-Objekt als Singleton dass ich beim Request instanziert und dann mit den Informationen gespeist wird, und dann jeder Klasse (bzw. jedem Objekt) verfügbar ist. Doch wie verhält es sich bei mehreren Requests an das Servlet... mit verschiedenen "User-Session" .. gibts dann immer wieder ein neues Static-Object (pro Request-Thread) oder würden dann die daten in dem "alten" überschrieben werden.

Wie löst man solch eine Anforderung sonst auf in der J2EE-Welt?!


Hoffentlich versteht man was ich will :)

Danke im Voraus!
 
L

L

Gast
Ist bei uns mit Hilfe einer ManagedBean (Session-Scope) realisiert, die die Infos zur Locale des Users bei Login erhält.
 
M

MattyDE

Gast
Und diese Bean bleibt die ganze "Nutzer-Session" erhalten.. oder wird die immer wieder mit den DAten des Users aus der Browser-Session gefüllt?

Ist das ein static-Objekt?
 
M

maki

Gast
"static object" ist ein Oxymoron ;)

Und genau da ist jetzt der Knackpunkt ;o) .. Wie schaffe ich es dass ich bspw. die Info welche Sprache er nutzen soll nicht jeder Klasse übergeben muss (im Konstruktur bspw.) sondern diese Information jeder Klasse "automatisch" verfügbar ist?
Was ist denn das Problem damit, diese Daten per Setter bzw. im Konstruktor oder als Methodenparamter mitzugeben?

Ist meist die sauberste Lösung, Singletons dagegen sind böse.
 
L

L

Gast
Und diese Bean bleibt die ganze "Nutzer-Session" erhalten.. oder wird die immer wieder mit den DAten des Users aus der Browser-Session gefüllt?

Genau das is der Sinn und Zweck von Sessionscope, die Bean lebt solange, wie die Session lebt und wird nicht 'immer wieder' gesetzt - und ist natürlich nicht static. Bei erfolgreichem Login werden die ManagedBeans (vom ServletContainer automatisch, deshalb 'managed') erzeugt, Locale des Benutzers wird über ne managedproperty gesetzt, und steht danach die ganze Benutzersession zur verfügung.
 
M

MattyDE

Gast
Danke für die vielen Antworten.

also Beans verwendet ich eigentlichg gar nicht (dazu müsste man ja JSF verwenden oder?) Also fällt das schonmal flach.. odeR?

Ich möchte die Information nicht über den Konstruktor doch alle Klassen reichen, weil damit dann mind. 20 Klassen betroffen wären (abgesehen von den ganzen Konstruktoren die ich bisher schon aufrufe und hier das LAnd-Objekt nicht mitgebe)

Ich hab das jetzt mal mit nem Static versucht und zweimal nen Request abgeschickt - einmal mit Land.Englisch und einmal Land.Deutsch - gebreaked.. und das eine überschreibt das andere (leideR)

Also MUSS ich auf ein Objekt zurückgreifen, dass durch die Klassenhierarchie geschleust wird oder? ... Mist ....

Es geht nämlich um ein DruckFramework, so dass jedes Bussiness-Objekt weiß wie es sich zu drucken hat (natürlich auch in welcher Sprache) ... und darum braucht die "LandInfo" wirklich JEDES BusinessObjekt bei mir :/... aber wenns net anders geht.

Danke auf jeden Fall für eure Tipps und Kommentare!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Eigene Threads in J2EE-Umgebung Web Tier 8
G AJAX und J2EE Web Tier 6
I Gleiche Session von EJB Container in JSF Container verwenden? Web Tier 21
R Session löschen Web Tier 3
J Session ist nach Klick auf Zurück-Button wieder aktiv Web Tier 3
jann Servlet Bei jedem Request wird eine neue Session erstellt. Web Tier 6
J Session Servlet - JavaScript Web Tier 6
M Session closed - und nun? Web Tier 1
F JSF synchronized(session) Frage ? Web Tier 1
F JSF p:selectOneMenu Session Web Tier 10
T JSF Problem wenn Session abgelaufen ist Web Tier 6
Q JSF bei Session-Timeout Weiterleitung auf spezielle Login-Seite Web Tier 15
D JSF Überprüfen der Session ID in JSF und JAVA Web Tier 9
R Servlet Resource laden für SMTP - Session Web Tier 4
B JSF Mojarra 2.1.5: java.lang.IllegalStateException: Cannot create a session after the response has been Web Tier 7
R JSF Session Handling Web Tier 3
X JSP Auslesen der Daten einer Session Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
crashfinger JSP Session verloren bei DNS Servernamen & IE Web Tier 6
C session trackung auf einfacher web-site Web Tier 17
F JSF Session-Kolision Web Tier 3
R Zugriff auf Session direkt auf JSF-Seite Web Tier 2
H JSF Session Initialisierung Web Tier 2
E JSP Browser Tab Session Web Tier 7
F Session Tutorial Web Tier 5
T JSP Session Login - Sicherheit Web Tier 4
J Loginbereich mit Session und Datenbank Web Tier 5
M 2 Cookies in der session (cocoon 2.2) Web Tier 4
F Richtiges Session Management mit Servlets Web Tier 4
P JSP: Liste in Bean über Session aufbauen Web Tier 6
7 Struts+AJAX- Session-Handling? Web Tier 2
B JSF session bean mit worker thread updaten Web Tier 7
J Crash bei session timeout Web Tier 3
M session Speicherort - ID ändern Web Tier 8
V ANFÄNGER : eigene Session Web Tier 3
V DatenbankConnection an Session hängen Web Tier 4
P session.removeAttribute Web Tier 3
K Orientierungslosigkeit: Webservice+Ajax(echo2)+Session-Management Web Tier 4
O struts - Gültigkeit einer Action an Session binden?! Web Tier 4
D JSF: Best Practice "Session invalidate nach Schließen des Browsers"? Web Tier 3
T Unbegrenzte Session Web Tier 14
D tapestry 5 session Web Tier 2
J Struts 2 session ID auslesen? Web Tier 5
S Problem mit Session - Übergabe von Kontext zu Kontext Web Tier 2
F JSF: Beans in Session oder Request? Web Tier 4
H JSF - Bean (scope session) - Verfallsdatum? Web Tier 3
T Problem bei Session-Timeout Web Tier 3
M JSF refresh vs. session scope Web Tier 9
G Session in Servlet Starten und mit JSTL auslesen Web Tier 2
G Servlet - Von Parametern umstellen auf Session Web Tier 8
G jsf session erstellen Web Tier 10
rambozola session attribut in servlets und jsps Web Tier 11
M JSF session.invalidate() klappt nicht Web Tier 3
G Session.invalide() funktioniert nicht richtig Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben