jsf session erstellen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo,

ich möchte einen ganz einfachen login realisieren ohne plausibilität. es geht nur darum eine session für den benutzer aufzubauen.

ich habe dazu einfach ein testprogramm erstellt, was einen namen bekommt und diesen in einer liste im applikationsbean speichert und zusaätzlich den namen in dem sessionbean als string speichert.

Code:
public class SessionBean1 extends AbstractSessionBean {
 
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

ich habe zwei seiten: page1 und page2. diese haben jeweils einen button um jeweils zu der anderen zu navigieren. zusätzlich habe ich 1 feld für einen namen einzutragen.

Code:
if(!getApplicationBean1().addLogedUser(textbox1.getText().toString())){
                error("sie sind bereits angemeldet!");
                return null;
            }

            getSessionBean1().setName(textbox1.getText().toString());
            System.out.println("Session wird initalisiert durch setzte der Property name");
            return "page2";

geht der benutzer jetzt auf den button1 auf page1 soll er zur seite 2 gelangen (return "page2"). und dabei soll der name auf seite 2 ausgegeben werden. dazu habe ich gedacht, das ich den namen in das sessionbean schreibe und dann ihn auf der 2 seite auslese. das funktioniert auch, nur leider werden wenn ich die url in 2 verschiedenen tabs im firefox aufrufe jeweils nur einmal das sessionbean angesprochen bzw erstellt (erkannt an der system.out.println("konstruktor session bean")).

nach meiner logik würde ich erwarten das jeweils eine session erstellt wird. ich scheine dabei aber einen fehler zu machen.

ist dieses sessionbean nicht dem einzelnen url aufruf zugewiesen wo es zum ersten mal benutzt wird?

vielen dank
und grüße
Code:
 
G

Guest

Gast
hallo,


ich hab ganz vergessen zu schreiben, dass ich netbeans 6 verwende :D

danke und grüße
 

y0dA

Top Contributor
Hi!
Das Problem liegt nicht an deinem Code, vielmehr am Browser!
Für ein geöffnetes Firefox Fenster inkl all seiner Tabs gibt es nur 1 Session, dh wenn du eine neue Tab aufmachst hast du keine neue Session sondern benutzt nach wie vor die Session des Fensters.
 

Atze

Top Contributor
das ganze zieht sich über alle fenster des firefox, sogar über die downloadfenster. solange der firefox nicht komplett geschlossen ist, ist es die gleiche session
 

y0dA

Top Contributor
Atze hat gesagt.:
das ganze zieht sich über alle fenster des firefox, sogar über die downloadfenster. solange der firefox nicht komplett geschlossen ist, ist es die gleiche session

jo so meinte ich das auch - ist besonders spannend das einem kunden mitzuteilen, der es gewohnt ist in einer applikation mehrmals, mit verschiedenen benutzern, eingeloggt zu sein..
 
G

Guest

Gast
hi,

danke für eure schnelle antwort.
mmmm! ist aber gar nicht befriedigend. wie kann ich das den sonst sauber lösen? hat vielleicht jemand in der hnisicht noch ne idee?

grüße und danke
 

Atze

Top Contributor
@y0dA:

kann der kunde ja, einmal mit dem explorer, einmal mit dem firefox, einmal mit opera ... :D

@ gast:
ja, du hast die anwendung sicher in nem server laufen, oder? lass mich mal raten, in nem tomcat? dem tomcat kannst du aber sagen, wie lange er eine session aufrecht erhalten soll, bzw kannst mit bestimmten konfigurationen selbst die benutzer verwalten

informier dich mal über "Security Realms"
 
M

maki

Gast
Die Session wird nicht zwischen UNtersachiedlichen Instanzen des FF/IE geteilt.

Nur bei: Neuer Tab(CTRL+T, Neues Fenster (CTRL+N)

Öffnet man einen neuen Browser "richtig", bleibt die Session da wo sie hingehört.
 
G

Guest

Gast
hi,

@Atze: sehr gute idee mit den verschiedenen browsern :)

aber das bringt mich auf folgende idee:

spontan werde ich es evt. so machen.

ich lese die sessionid aus und speichere die bei erfolgreicher anmeldung in dem sessionbean. wenn dann ein weiteres fenster geöffnet wird und die sessionid schon vergeben ist (was bei tags ja der fall ist), dann verweigere ich den zugriff, vielleicht mit einen redirect (weiß einer wie das geht?). sollte eigentlich so gehen :)

wenn ich zwei verschiedene browser auf habe werde ich dann das problem nicht haben, weil jeder browser seine eigene session und damit auch sessionid hat.

was halltet ihr von der spontanen idee?

grüße
 
M

maki

Gast
ch lese die sessionid aus und speichere die bei erfolgreicher anmeldung in dem sessionbean. wenn dann ein weiteres fenster geöffnet wird und die sessionid schon vergeben ist (was bei tags ja der fall ist), dann verweigere ich den zugriff, vielleicht mit einen redirect (weiß einer wie das geht?). sollte eigentlich so gehen icon_smile.gif
Einen Servlet Filter schreiben ist der übliche Weg, deine Lösung würde wenn überhaupt nur mit JS umzusetzen sein.
 
G

Guest

Gast
hallo,

ich hab zu dem sessionbean nochmal ne frage.
dieses sessionbean was ich bei netbeans automatisch erhalte, hat ja eigentlich nicht wirklich was zu tun mit der eigentlichen session des browsers, oder? also der HttpSession klasse?
vielmehr wird dieses sessionbean von der HttpSession klasse initalisiert, oder? verstehe ich das richtig.
das sessionbean enthält ja außer den callback methoden init(), activat(), passivate(), destroy() keine properties für die jsessionid.
die eigentliche session wird ja beim aufrufen der url erstellt, also mit jsessionid usw. und das sessionbean wird erst initalisiert, wenn dort daten in angelegten properties gespeichert werden.

vielleicht kann jemand noch kurz dazu stellung nehmen. damit ich weiß ob ich es richtig verstanden haben.

grüße und vielen dank.

schönen feierabend an alle, die das lesen, und natürlich auch allen andern :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
M [J2EE] Session-Save Static-Objects? Web Tier 6
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
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
J dynamische jsf-seite programmatisch erstellen Web Tier 1
FINF_AW_Alex JSF Nochmal ACL -+- Neue Entity aus anderen Entitys erstellen Web Tier 16
E Wie kann ich dynamische HTML- Tabellen(-spalten) mit JSP aus SELECT-Anweisung erstellen? Web Tier 2
J JSF-Komponente, in der man ein Klassen-Diagram erstellen kann Web Tier 0
G jsf bean erstellen die mir die aktuelle uhrzeit ausgibt als xhtml Web Tier 5
M Exception beim Erstellen einer Query Web Tier 9
H Bean-Objekte aus XML erstellen Web Tier 2
D JSF Converter erstellen Web Tier 2
H JSPs programmatisch erstellen Web Tier 11
L in JSF ein download button erstellen Web Tier 4
I Menü erstellen: h:panelGrid rendern in Abhängigkeit von CommandLink Web Tier 2
L Unter JSP eine XML Datei erstellen Web Tier 3
2 ActionForm erstellen? Web Tier 3
F Fehler beim erstellen des EJB - Moduls! Web Tier 4
H Vorgehensweise: Bilder anzeigen/erstellen in JSP/Servlet ? Web Tier 3
N JSF-Tabelle erstellen aus Datenbank mittels JDBC Web Tier 12

Ähnliche Java Themen

Neue Themen


Oben