Mehrere User gleichzeigig, wie mach ich das?

Status
Nicht offen für weitere Antworten.

A.T.

Bekanntes Mitglied
Hallo zusammen,
verwende Tomcat 5.5 als Webserver und habe mit hilfe von JSF eine Website gebastellt. So jetzt möchte das sich mehrere User gleichzeitig einlogen können. Wie stelle ich das an? Im Moment habe ich das Problem das mein ModelController ein Singelton ist, wenn sich jetzt aber der zeite Benutzer anmeldet wird die Information des ersten überschrieben bzw. der zweite nicht gesetzt. Habe keine Idee wie ich das umsetzten soll.
Ein paar Tips was ich dazu lesen sollte oder wonach ich am besten suche wären sehr hilfreich.

Vielen Dank schon mal!

Gruß
A.T.
 
M

maki

Gast
Tobias hat gesagt.:
Such mal nach HTTPSession und SessionScope.
Ob das reicht die Multithreding Probleme die er garantiert haben wird in den Griff zu bekommen?

Am besten würde ich ein gutes Buch empfehlen, aber da er nicht sagt was er schon weiss/kann ist das nicht möglich.

Warum ein Singleton wenn es doch JAAS gibt und von TC unterstützt wird?
 
G

Gast

Gast
Danke für eure Antworten.

Ein gutes Buch wäre wirklich nicht schlecht!
Was ich weiß? Mhhh. Schwer zu breschreiben. Sagen wir es mal so, für einen benutzer bekomme ich das alles ganz gut hin. Läuft auch einwandfrei, allerdings hört es dann bei mehr als einem benutzer auch schon auf...
Den Singelton habe ich verwendet da ich für jeden Benutzer eine Liste halten will/muss und noch einige Daten zum benutzer braucht. Außerdem wollte ich nur einmal pro User eine Datenbankverbindung aufbauen da ich verhältnismässig oft etwas schreiben bzw. lesen muss.
Weiß nicht ob das gut genug beschreibt was ich weiß...

Gruß
A.T.
 
M

maki

Gast
Würde ein Grundlagenbuch über Servlets und JSP empfehlen ;)

Eine Datenbankverbindungen per Benutzer ist sehr schlecht, lieber eine DAO Schicht einführen.

Solltest das Singleton Pattern nicht benutzen, da dir der Sinn dessen anscheinend noch nicht geläufig ist ;)

Ansonsten ist Tobias vorschlag mit dem Session Scope goldrichtig, denke aber das dir das nichts nützen wird, da die anderen Grundlagen fehlen.

Nebenbei, Webanwendungen mit Java sind sehr komplex, Java über JEE zu erlernen ist schwer.
 

A.T.

Bekanntes Mitglied
@maki Kannst du ein spezieles Buch nenen? Die gibts ja wie Sand am Meer... Bei den Grund lagen zum Thema JEE habe ich tatsächlich Defizite. Das bestreite ich ja nicht mal. Deshalb meine zum Teil etwas blöde Fragen...
Im Moment ist eine quick and durty implementierung das Ziel will ich nicht sagen aber doch gerlaubt. Deshalb der einfache zugriff auf die Datenbank durch jeden Benutzer. Wenn es anders einfach und schnell geht habe ich da auch nichts gegen.
Wie gesagt habe ich den ModelController als Singelton implementiert und halte das auch für legetim. Da ich pro User nur einen davon haben will und so verhältnismässig einfach an meine Daten komme. Ob das schön ist weiß ich nicht, lasse mich aber auf jeden fall eines besseren belehren...
Und was Java angeht behaupte ich einfach mal das ich da ganz Fit bin, nur was Webanwendungen und zusätlich noch Mehrbenutzerbetrieb angeht sieht es ehr sehr schlecht aus...
Also bin weiterhin für jeden Tip dankbar!
 
M

maki

Gast
Defizite sind normal, deswegen lernt man ja.

Singleton = Eine einzige Instanz einer Klasse.
Du aber willst eine Instanz pro User, merkst du den Unterschied?

Früher fand ich die O'Reilly Bücher ganz gut, k.A. ehrlich gesagt was jetzt gut ist, SUn Press hat auch einige Bücher zu diesem Thema.

JAAS ist auf jedenfall einen Blick wert, löst viele deiner Probleme sehr elegant.

Es gibt für Webanwendungen viele verschiedene MVC Frameworks, wirst früher oder später nicht daran vorbeikommen.
Etwas älter ist struts, aber sehr verbreitet.

Bevor du dich in Richtung JSF bewegst solltest du aber wirklich fit in Servlets und JSPs sein imho.
 

A.T.

Bekanntes Mitglied
Ja klar merke ich den Unterschied. Habe da wohl einen Fehler gemacht. Habe gedacht es würde eine Instanz pro User geben und nicht nur eine insgesamt. Fragt sich wie man eine Instanz pro User hinbekommt?

Gut dann werde ich mir wohl mal Bücher besorgen müssen...

Meinen Fehler habe ich jetzt erst mal beseitigt. Ich schreibe meine Daten wie folgt
Code:
((HttpServletRequest) FacesContext.getCurrentInstance()
.getExternalContext().getRequest()).getSession()).setAttribute("testDaten", testObjekt);
So bekomme ich jeden falls jeweils die Daten eines bestimmten benutzers.

Nur weiß ich noch nicht so genau wie das alles aufbauen soll...

Gruß
A.T.
 
M

maki

Gast
Mach doch eine ManagedBean mit Session Scope draus, dann sparst du dir einiges an Aufwand und nutzt gleichzeitig einen Vorteil von JSF ;)
 

A.T.

Bekanntes Mitglied
Vermutlich sollte mir jetzt ein Licht aufgehen... :oops:
Code:
<managed-bean>
    <managed-bean-name>testBean</managed-bean-name>
    <managed-bean-class>de.testProjekt.Beans.testBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Dann müsste ich aber doch auch mittels
Code:
FacesContext ctx = FacesContext.getCurrentInstance(); 
HttpSession session = (HttpSession)ctx.getExternalContext().getSession(true); 
ModelBean modelBean = (ModelBean)session.getAttribute("modelBean");
Auf die Daten zugreifen oder? Sieht irgendwie genauso kompliziert aus...
 
M

maki

Gast
Wir nutzen JSF 1.1 mit einem selbstgestrickten Framework, welche unter anderen eine utility Klasse mit einer statischen Methode enthält:
Code:
	public static Object getSessionScopeBean(String name) {
		ExternalContext ctx = FacesContext.getCurrentInstance()
				.getExternalContext();
		
			Object object = ctx.getSessionMap().get(name);	
			if (object != null)
				return object;			
			throw new RuntimeException("No bean found: "+name);
		
	}
Diese Methode kann dan bequem von anderen ManagedBeans benutzt werden.

Geht übrigens auch für AcplicationScope, RequestScope, etc. mit kleineren Änderungen ;)
 

A.T.

Bekanntes Mitglied
Danke! Das ist eine gute Idee! Ich habe das jetzt bei mir auch umgesetzt. Einen weiteren dummen Fehler von mir gefunden und jetzt klappt es erst mal gut.

Vielen Dank für die Hilfe!

Gruß
A.T.
 

A.T.

Bekanntes Mitglied
Das vorgänger Buch J2EE habe ich hier auf dem Schreibtisch liegen. Sollte es vielleicht wirklich mal lesen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
N JAAS login() mehrere Parameter an LoginModul übergeben Allgemeines EE 2
T Mehrere gleiche Jars im Classpath Allgemeines EE 7
A JMS: Mehrere Durable Subscriber dynamisch zur Laufzeit erzeugen - setClientID() Allgemeines EE 2
MQue ein Rechner - mehrere BrowserFenster Allgemeines EE 3
K mehrere Datenbanken mit JBoss 4.2 und EJB3 Allgemeines EE 3
A Annotation "ID: Primary Key über mehrere Spalten möglic Allgemeines EE 3
M Mehrere Webanwendungen über einen Webserver? Allgemeines EE 2
B JSF - Mehrere Message-Bundles verwenden Allgemeines EE 17
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
clemson HTML Taglib - mehrere Submit-Buttons & Internationalisie Allgemeines EE 4
M MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren Allgemeines EE 7
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
W Mehrere Applikationenen mit einer Anmeldung möglich? Allgemeines EE 11
B mehrere submit-buttons in einer jsp Allgemeines EE 11
B eine vom Admin hochgeladene csv -Datei in der Datatable auch von jedem User sichtbar Allgemeines EE 0
OnDemand JSF Growl Message an User senden Allgemeines EE 13
C Fotoverwaltung in einer Multi-User Anwendung Allgemeines EE 4
T JSF User erstellen Allgemeines EE 22
P Nur ein User für Web Application Allgemeines EE 11
G Multi User Problem Allgemeines EE 8
B Tomcat -> Funktions User Credentials hinterlegen Allgemeines EE 7
TRunKX hx:commandExButton DAtei erstellen und dem User zum Download Allgemeines EE 7
F FORM Auth in JBoss für User mit falscher Rolle ? Allgemeines EE 2
B Session Daten pro User merken Allgemeines EE 9
I EMail Bestätigung bei neuem User Allgemeines EE 3
B Woher kommt der User? Verweise . Links . Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben