2016-04-19 3 views
0

OK, ich bin irgendwie unfähig, meine Probleme zu erklären, aber ich werde versuchen, so detailliert und doch so knapp wie möglich zu sein.Java Servlet, wie man einen bestimmten Wert von einem Sitzungsattribut bekommt

Ich habe 2 Servlets; NewCustomerServlet und LoginServlet

Ich habe 1 Java Bean; Benutzer

Der Benutzer hat eine Reihe von Feldern. Benutzername, Vorname, Passwort, etc ...

mein index.jsp leitet den Benutzer automatisch zu NewCustomerServlet, so dass der Benutzer ein "Konto" erstellen kann Sobald sie füllen die Felder die Bean Bean erstellt und gespeichert in die Sitzung. Dann kann sich der Benutzer "anmelden"

Das Problem, das ich habe, validiert den Benutzernamen aus der Sitzung "Benutzer" mit den Feldern login.jsp mit der Sitzung.

Wie greife ich auf die Sitzungen "Benutzername" oder "Passwort" Feld. Alles was ich scheinbar tun kann, ist der Name der Sitzung, die "Benutzer" wäre?

Antwort

0

referenzieren JavaDoc für HttpSession,

Sie werden erkennen, dass HttpSession speichert durch Schlüssel-Attribute, wie ein HashMap, würden Sie platzieren Objekte in der Sitzung (Alle serializeable Objekt) wie:

String userName = "something";// 
session.setAttribute("username", userName); 

Dann können Sie es wieder mit:

String un=(String)session.getAttribute("username"); 

Es ist möglich, komplexere Obj speichern ects, wie eine ganze User Objekt, solange das Objekt implementiert Serializable:

User someUser = //details left to the OP 
session.setAttribute("user", someUser); 

Dann können Sie später die Informationen für den Benutzer abzurufen:

User someUser = (User)session.getAttribute("user"); 
if(user != null){ 
    String username = user.getUsername(); 
} 

Auch hier ist eine schöne, kurze Sicht - Durch Common Session-Nutzung mit Servlets und HttpSession: Session Tracking

+0

Jesus ... Ich "lerne" Java seit etwa 2 Jahren, und eine Sache, die mir in den Sinn kam für das Projekt war in der Lage t O; Benutzer someUser = (Benutzer) session.getAttribute ("Benutzer"); Das war der Schlüssel, den ich vermisste. Ich habe vergessen zu erwähnen, dass Benutzer IS serialisierbar ist und ich entschuldige mich dafür. Alles in allem, das war genau das, was ich brauchte, und DANKE für die knappen Informationen! – surlistyc

Verwandte Themen