Enregistrement des accès à une page web à l'aide d'écouteurs

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à implémenter une fonctionnalité de suivi d'accès à une page web à l'aide d'un écouteur. Le but de ce projet est de créer une application web qui peut afficher le nombre d'utilisateurs actuellement connectés à la page d'accueil.

👀 Aperçu

compteur de visiteurs de page web

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment implémenter la classe MyListener.java pour suivre le nombre de visites de la page d'accueil.
  • Comment implémenter le fichier index.jsp pour afficher le nombre actuel de visiteurs.
  • Comment configurer le MyListener dans le fichier web.xml.
  • Comment démarrer le serveur Tomcat et tester l'application.

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Utiliser l'interface HttpSessionListener pour suivre les sessions d'utilisateurs.
  • Stocker et récupérer le nombre de visiteurs dans le ServletContext.
  • Afficher le nombre de visiteurs dans un fichier JSP.
  • Configurer un écouteur dans le fichier web.xml.
  • Démarrer et tester une application web à l'aide de Tomcat.

Implémentez la classe MyListener.java

Dans cette étape, vous allez apprendre à implémenter la classe MyListener.java pour suivre le nombre de visites de la page d'accueil.

  1. Ouvrez le fichier MyListener.java situé dans le répertoire ListenerProject/src/main/java/org/labex/listener.

  2. Implémentez la classe MyListener, qui implémente l'interface HttpSessionListener. Cette interface fournit deux méthodes : sessionCreated() et sessionDestroyed().

  3. Dans la méthode sessionCreated(), procédez comme suit :

    • Obtenez le ServletContext à partir de l'objet HttpSessionEvent.
    • Récupérez l'attribut "count" à partir du ServletContext. Si l'attribut est null, initialisez-le à 1. Sinon, incrémentez le compteur de 1.
    • Remettez l'attribut "count" mis à jour dans le ServletContext.
  4. Dans la méthode sessionDestroyed(), procédez comme suit :

    • Obtenez le ServletContext à partir de l'objet HttpSessionEvent.
    • Récupérez l'attribut "count" à partir du ServletContext. Si le compteur est supérieur à 0, décrémentez-le de 1.
    • Remettez l'attribut "count" mis à jour dans le ServletContext.

Votre classe MyListener.java devrait ressembler à ceci :

package org.labex.listener;

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

public class MyListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();
        Integer count = (Integer) context.getAttribute("count");

        if (count == null) {
            count = 1;
        } else {
            count++;
        }

        context.setAttribute("count", count);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();
        Integer count = (Integer) context.getAttribute("count");

        if (count!= null && count > 0) {
            count--;
        }

        context.setAttribute("count", count);
    }
}
✨ Vérifier la solution et pratiquer

Implémentez le fichier index.jsp

Dans cette étape, vous allez apprendre à implémenter le fichier index.jsp pour afficher le nombre de visites de la page d'accueil.

  1. Ouvrez le fichier index.jsp situé dans le répertoire ListenerProject/src/main/webapp.

  2. Dans le fichier JSP, importez les classes nécessaires :

    • javax.servlet.ServletContext
    • javax.servlet.http.HttpServletRequest
  3. Implémentez une méthode appelée getVisitorsCount() qui prend un objet HttpServletRequest en paramètre. Dans cette méthode, procédez comme suit :

    • Obtenez le ServletContext à partir de l'objet HttpServletRequest.
    • Récupérez l'attribut "count" à partir du ServletContext. Si l'attribut est null, renvoyez 0. Sinon, renvoyez la valeur du compteur.
  4. Dans le fichier JSP, affichez le nombre actuel de visiteurs en appelant la méthode getVisitorsCount() et en intégrant le résultat dans le HTML.

Votre fichier index.jsp devrait ressembler à ceci :

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@ page import="javax.servlet.ServletContext" %> <%@
page import="javax.servlet.http.HttpServletRequest" %>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Page d'accueil</title>
  </head>
  <body>
    <%! public int getVisitorsCount(HttpServletRequest request) { ServletContext
    context = request.getServletContext(); Integer count = (Integer)
    context.getAttribute("count"); return (count!= null)? count : 0; } %>

    <h1>Bienvenue sur mon site web</h1>
    <p>Visiteurs actuels : <%= getVisitorsCount(request) %></p>
  </body>
</html>
✨ Vérifier la solution et pratiquer

Configurez l'écouteur dans web.xml

Dans cette étape, vous allez apprendre à configurer le MyListener dans le fichier web.xml.

  1. Ouvrez le fichier web.xml situé dans le répertoire ListenerProject/src/main/webapp/WEB-INF.

  2. Ajoutez la configuration suivante au fichier web.xml :

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- Définissez votre écouteur -->
    <listener>
        <listener-class>org.labex.listener.MyListener</listener-class>
    </listener>

</web-app>

Cette configuration enregistrera la classe MyListener en tant qu'écouteur dans l'application web.

✨ Vérifier la solution et pratiquer

Démarrez le serveur Tomcat et testez l'application

  1. Ouvrez un terminal et accédez au répertoire ListenerProject en utilisant la commande suivante :

    cd ~/project/ListenerProject/
  2. Démarrez le serveur Tomcat en utilisant la commande suivante :

    mvn clean tomcat7:run
  3. Ouvrez un navigateur web et accédez à http://localhost:8080. Vous devriez voir la page "Bienvenue sur mon site web" avec le nombre actuel de visiteurs affiché.

  4. Actualisez la page plusieurs fois, et vous devriez voir le nombre de visiteurs augmenter.

  5. Fermez le navigateur et attendez quelques minutes. Actualisez la page à nouveau, et vous devriez voir le nombre de visiteurs diminuer.

Félicitations! Vous avez réussi à implémenter la fonctionnalité de suivi d'accès à une page web à l'aide d'un écouteur.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.