2016-07-28 4 views
2

Ich habe eine einfache, kurze Frage, aber nirgendwo die Antwort gefunden. Ich habe eine HttpSession erstellt und möchte ein Attribut davon abrufen, zum Beispiel ein User-Objekt.Java HttpSession .getAttribute (String-Name)

HttpSession session = request.getSession(true); 
Object userObject = session.getAttribute("name"); 
if ((userObject != null) && (userObject instanceof User)) { 
    User currentUser = (User) userObject; 
    ... 
} 

Die Frage ist folgende: .getAttribute Funktion einen String-Namen als Parameter bekommt - was ist der Name? Woher kenne ich den Namen? Ist es irgendwo vordefiniert? - Wo soll man dann einen definieren?

Vielen Dank!

Antwort

2

Normalerweise fügen Sie Attribute der Sitzung selbst wie folgt:

User someObject = new User(); 
session.setAttribute("pickaName", someObject); 

Dann können Sie die Sitzung erhalten und dieses Attribut abziehen, dass die gleichen Namen, die Sie zuvor etwa so verwendet:

User sameObject = (User) session.getAttribute("pickaName"); 
+0

Danke, ich glaube, ich habe es. Wenn ich recht habe, wenn ich zum Beispiel ein User-Objekt mit getAttribute in einer Sitzung bekommen will, muss ich zum Beispiel eine Login-Methode erstellen, bei der ich das Attribut für den Benutzer setze, bin ich? –

+0

Genau. Erstellen Sie das Objekt, fügen Sie es zuerst hinzu, und Sie können es später abrufen. – LeHill

+0

Danke, es hat mir sehr geholfen! –

0

.getAttribute-Funktion erhält einen String-Namen als Parameter - wie lautet der Name?

Wenn Sie Attribute von Session zu erhalten, müssen Sie sie in die Session setzen, bevor etwa so:

User aux = new User(); 
HttpSession session = new HttpSession(); 
session.setAttribute("myUserObject", aux); 
User user = (User) session.getAttribute("myUserObject"); 
Verwandte Themen