Conteggiare gli utenti connessi al proprio sito web
DOMANDA:
Come faccio a sapere quanti utenti sono connessi attualmente sul mio sito web?
RISPOSTA:
Java mette a disposizione delle particolari classi chiamate Listener che vanno aggiunte al file web.xml (contenuto nella cartella WEB-INF del nostro Progetto Web Dinamico) in questo modo:
<listener>
<listener-class>listener. UtentiOnline</listener-class>
</listener>
<listener-class>listener.
</listener>
La classe UtentiOnline, per essere un Listener dovrà implementare HttpSessionListener in modo da avere tutti i metodi per scatenare una reazione alla creazione e/o alla distruzione di una sessione.
Nell’esempio di seguito la mia classe Listener è UtentiOnLine.
package listeners;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class UtentiOnline implements HttpSessionListener {
private static int numUtenti = 0;
public void sessionCreated(HttpSessionEvent sessione) {
System.out.println("SESSIONE CREATA");
setNumUtenti(getNumUtenti() + 1);
}
public void sessionDestroyed(HttpSessionEvent sessione) {
System.out.println("SESSIONE DISTRUTTA");
setNumUtenti(getNumUtenti() - 1);
}
public static int getNumUtenti() {
return numUtenti;
}
public static void setNumUtenti(int numUtenti) {
UtentiOnline.numUtenti = numUtenti;
}
}
La JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="listeners.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Utenti Connessi: <%= UtentiOnline.getNumUtenti() %>
</body>
</html>
Commenti
Posta un commento