Wie zählt ein Usercounter runter, wenn der Browser einfach geschlossen wird?

Basti54

Erfahrenes Mitglied
Morjen.

Ich habe ein kleines LoginScript in jsp (Realisierung über Session, es werden keine Cookies gesetzt). auch alles, kein Problem. Jetzt hab ich dazu noch eine Klasse, die mit einer static-Methode alle eingeloggten User zählt. Klappt auch. Wenn sich einer ausloggt, zählt er wieder runter, geht auch. Wenn er aber nicht auf den logout button geht, sondern nur den Browser schließt und damit von der Seite weg ist, wird natürlich auch nicht runtergezählt. Damit ist die Zahl der derzeitigen User falsch. wie kann ich das umgehen/verhindern?
 
Hallo!

Denke das ginge über's Session Timeout und Anzahl der aktiven Sessiond zählen.
Oder du hinterlegst per Java Script ne Aktion die beim schließen des Fensters ein explizites Abmelden durchführt.

Gruß Tom
 
So, Frage:
mit der Methode
setMaxInactiveInterval(int interval) von HttpSession kann ich das Sessiontimeout einstellen. Gibt es eine Möglichkeit, beim Timout eine eigene Methode auzurufen? So'ne Art Listener? Im Interface Session hab ich jetzt nix auf anhieb gefunden...
 
An welchen Stellen implementiere ich das jetzt? Ich habe Jsp-Dateien und Servlets....also bei Servlets bekomm ich das noch hin, wie läuft das aber bei jsp's?

Oder muß ich das nur einmal implementieren? wenn ja, wo?
 
Zuletzt bearbeitet:
Hallo!

Du musst einfach das HttpSessionListener Interface implementieren.
Danach trägst du in deiner web.xml VOR(!) den Servlet Deklarationen die Deklaration deines SessionListeners ein:

Code:
<listener>
	<listener-class>
		de.tutorials.web.listeners.SessionCounter
	</listener-class>
</listener>

Innerhalb deiner HttpSessionListener-Implementierung hast du nun die Möglichkeit mittels
der Methoden
void sessionCreated(HttpSessionEvent se)
Notification that a session was created.
void sessionDestroyed(HttpSessionEvent se)
Notification that a session is about to be invalidated.
über Neu erstellte und Auslaufende Sessions informiert zu werden. Dabei spielt es keine Rolle, ob die Session von einem Servlet oder einer JSP erstellt worden ist.

Gruß Tom
 

Neue Beiträge

Zurück