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>


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

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java