Was ist session-management in Java?
Ich habe vor, diese Frage in meinem Interview auch. Ich habe viele Verwirrung mit Session-Scope & it-management in java.
In web.xml wir haben den Eintrag :
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
Was zeigt es eigentlich ? Es ist Rahmen des gesamten Projekts ?
Anderen Punkt verwirrend mich ist, wie können wir trennen die Sitzung Bereich mehrerer Anforderung in dem gleichen Projekt? Bedeutet, wenn ich mich einloggen vom PC aus & zur gleichen Zeit bin ich eine Anmeldung von einem anderen PC, funktioniert es unterscheiden ?
Auch eine andere verwirrende Sache ist, dass das browser-Unterschied. Warum die anderen wählen Gmails möglich zu öffnen in verschiedenen Browsern ? Und Google Mail kann verhindern, dass eine session, vom Login bis zur Abmeldung. Wie wird es gepflegt mit unserer persönlichen web ?
InformationsquelleAutor der Frage | 2010-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Session-management ist nicht etwas beschränkt auf Java und servlets. Hier ist in etwa, wie es passiert:
Überprüft der server, ob der browser identifiziert, die mit der session-cookie (siehe unten)
3.1. wenn der server nicht "weiß" der client:
dem server erstellt eine neue eindeutige Kennung und stellt es in einer Karte (grob), wie ein Schlüssel, dessen Wert die neu erstellte Session. Es sendet auch eine cookie-Antwort enthält den eindeutigen Bezeichner.
der browser speichert den session-cookie (mit lifetime = Lebensdauer des browser-Instanz), enthält den eindeutigen Bezeichner, mit dem Sie für jede nachfolgende Anforderung zu identifizieren, die sich eindeutig.
3.2. wenn der server kennt bereits die client - erhält der server die Session entsprechend dem übergebenen eindeutigen Bezeichner gefunden, in der das session-cookie
Nun auf einige der Fragen, die Sie haben:
den session-timeout ist die Zeit zu Leben, für jede Sitzung-map-Eintrag ohne zugegriffen wird. In anderen Worten, wenn ein client nicht senden Sie eine Anfrage für 30 Minuten (aus deinem Beispiel), die session-Karte fallen wird dieser Eintrag, auch wenn der client identifiziert sich mit dem eindeutigen Schlüssel in das session-cookie, werden keine Daten auf dem server vorhanden sein.
verschiedenen wählen Gmails (und was auch immer Website) geöffnet werden kann in verschiedenen Browsern, da das session-cookie ist pro browser. I. e. jeder browser identifiziert sich eindeutig durch entweder nicht senden der eindeutigen session-id, oder durch den Versand der server hat für Sie generiert.
Protokollierung von verschiedenen PCs ist eigentlich dasselbe -, die Sie nicht teilen, eine session-id
logging-out ist tatsächlich entfernen Sie den Eintrag für die session-id auf dem server.
Hinweis: die einzigartige session-id kann alternativ gespeichert werden:
InformationsquelleAutor der Antwort Bozho
Die Lebensdauer einer session. Die Sitzung abläuft wenn es keine Transaktion zwischen dem client und dem server für 30 Minuten (pro code-segment)
Es hat Anwendungsbereich. Definiert für jede web-Anwendung
Ja. Die session-id (JSESSIONID für Apache Tomcat) anders sein wird.
Jeder Anmeldung mit dem gleichen Benutzer von einem anderen browser ist eine andere session zusammen. Und die cookies in einem browser nicht auf einen anderen. So unterschiedlich Gmail Fälle sind möglich in verschiedenen Browsern.
Persistente cookies
InformationsquelleAutor der Antwort bdhar
Servlets in Java ein HttpSession-Objekt, das Sie verwenden können, zum speichern von Status-Informationen für einen Benutzer. Die Sitzung verwaltet wird auf dem client ein cookie (JSESSIONID) oder getan werden kann, mit der URL schreibt. Der session-timeout beschreibt, wie lange der server warten soll, nachdem die Letzte Anforderung vor dem löschen der Status-Informationen, gespeichert in einer HttpSession.
Umfang ist pro browser-Instanz, also in dem Beispiel, das Sie geben, Sie sich von zwei verschiedenen pcs wird das Ergebnis in zwei session-Objekte.
InformationsquelleAutor der Antwort Dean Povey
wenn Sie öffnen Sie die gleiche Anwendung in verschiedenen Fenster meine ich mehrere Instanzen des Browsers, die es schaffen verschiedene session für jede Instanz.
InformationsquelleAutor der Antwort Lalchand
ich empfehlen Apache Shiro für session-management,Authentifizierung und Autorisierung.Nehme ich es zurück.
Als @BalusC commeneted unten, nur der servlet container ist verantwortlich für die Verwaltung der http-session. Shiro ist nur mit. Es wird Haken zu HttpSession über einen filter, den Sie explizit zu definieren.
InformationsquelleAutor der Antwort Yaniv
haben wir 4 Möglichkeiten für die Verwaltung einer Sitzung.
1.Cookies
2.URL-rewriting
3.Versteckte Formularfelder
4.HTTP-Sitzung
die vierte ist mächtig und meist verwendet jetzt-a-Tage.
InformationsquelleAutor der Antwort user2191576