PDA

View Full Version : [JSP] Contatore utenti online


space81
19-06-2006, 10:56
Salve ragazzi, volevo sapere qual'era la strada migliore da percorrere per far si che nella mia pagina jsp appaia il numero di utenti che attualmente sta visitando il mio sito ! Grazie a tutti anticipatamente :p

dupa
19-06-2006, 11:19
Salve ragazzi, volevo sapere qual'era la strada migliore da percorrere per far si che nella mia pagina jsp appaia il numero di utenti che attualmente sta visitando il mio sito ! Grazie a tutti anticipatamente :p

per ogni utente tieni un cookie o una sessione che per default scade dopo N minuti.

se uno cambia pagina, la scadenza del cookie/sessione viene resettata ai sucessivi 5 minuti..

space81
19-06-2006, 11:48
per ogni utente tieni un cookie o una sessione che per default scade dopo N minuti.

se uno cambia pagina, la scadenza del cookie/sessione viene resettata ai sucessivi 5 minuti..

Avevo pensato alla session che sicuramente è piu' affidabile dei cookie dal momento che essi vengono spesso deselezionati dalle opzioni del browser. Grazie

space81
19-06-2006, 13:01
Ragazzi ho provato ad implementare questo codice :

--------------------------------------------------------------------------
SessionCounter.java

package MieiPackage;

import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;

public class SessionCounter implements HttpSessionListener {

private static int activeSessions = 0;

public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
}

public void sessionDestroyed(HttpSessionEvent se) {
if(activeSessions > 0)
activeSessions--;
}

public static int getActiveSessions() {
return activeSessions;
}
}

-------------------------------------------------------------------------
Session.jsp


<%-- Sessions.jsp --%>
<%@ page import="MieiPackage.SessionCounter" %>
<html>
<head>
<title>Active Sessions</title>
</head>
<body>
<p align="center">
Active Sessions : <%= SessionCounter.getActiveSessions() %>
</p>
</body>
</html>
-----------------------------------------------------------------------
il contatore rimane pero' sempre a zero, la domanda è come faccio a richiamare il metodo sessionCreated ? nn riesco a passargli l'argomento HttpSessionEvent :cry: ! GRAZIE a tutti per l'attenzione

space81
19-06-2006, 14:39
Risolto ragazzi, era da configurare il file XML correttamente cosi :

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>UtentiOnline</display-name>
<!-- Listeners -->
<listener>
<listener-class>
MieiPackage.SessionCounter
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

space81
19-06-2006, 15:29
cazzarola ora ho visto che il contatore aumenta solo e nn decrementa, qualcuna mi sa dire il perke? forse devo configurare il webserver in maniera diversa?

dupa
19-06-2006, 16:00
cazzarola ora ho visto che il contatore aumenta solo e nn decrementa, qualcuna mi sa dire il perke? forse devo configurare il webserver in maniera diversa?

perchè nn hai messaggi quando uno se ne va
devi impostare una scadenza per ogni utente collegato, se dopo N minuti nn fa più azioni allora lo consideri offline