Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |
Write servlet code to store objects into a session object and retrieve objects from a session object. |
Von einer Anfrage HttpSessionRequest erhält man eine Session durch eine der folgenden Methoden
Die Methode getSession(false) erzeugt keine neue Session, sondern gibt lediglich die aktuelle Session zurück. Existiert keine Session so wird null zurückgegeben.
Die Methoden getSession() und getSession(true) verhalten sich identisch. Es gibt die aktuelle Session zurück. Existiert keine aktuelle Session wird eine neue erzeugt.
Das Interface um Objekte an eine Session zu binden, wurde schon bei den Scopes behandelt. Es ist nicht möglich für einen einzelnen Namen mehrere Objekte zu speichern.
Laut Konvention sollten die Namen AttributObjekte entspechend wie Packages aufgebaut sein. z.B com.myCompany.project.packageA.packageB.Object
Die Methode aHttpSession.isNew() überprueft ob eine Session noch neu ist
Eine Session wird beendet:
Es ist die Aufgabe des Servlet Containers, die Sessions zu beobachten, zu messen wie lange diese inaktiv sind, und die inaktive Session zu beenden.
Man kann eine einzelnen Session einen Wert in Sekunden mitgeben, nachdem der ServletContainer bei Inaktivitaet diese Session löscht. Dies geschieht durch die Methode setMaxInactiveInterval(int seconds). Ein negativer Wert setzt das Intervall auf unbegrenzt.
Mit Hilfe des Deployment Descriptors kann man allen Sessions einer Webapplikation, einen Default Wert mitgeben, wie lange eine Session inaktiv sein darf, bis sie zerstört wird. Diese Angabe ist in Minuten (nicht in Sekunden wie bei setMaxInactiveIntervla(int interval). Bei einem Wert gleich null oder negativ wird der Container eine Session nicht zerstören.
Ist das Element session-config nicht im Deployment Descriptor angegeben, wird ein interner Default Wert angenommen, der vom spezifischen Servlet-Container abhängt.
Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |