JSP - Compteur de hits

Dans ce chapitre, nous aborderons Hits Counter dans JSP. Un compteur d'accès vous indique le nombre de visites sur une page particulière de votre site Web. Habituellement, vous attachez un compteur d'accès à votre page index.jsp en supposant que les gens arrivent d'abord sur votre page d'accueil.

Pour implémenter un compteur d'accès, vous pouvez utiliser l'objet Application implicite et les méthodes associées getAttribute() et setAttribute().

Cet objet est une représentation de la page JSP tout au long de son cycle de vie. Cet objet est créé lorsque la page JSP est initialisée et sera supprimé lorsque la page JSP sera supprimée par lejspDestroy() méthode.

Voici la syntaxe pour définir une variable au niveau de l'application -

application.setAttribute(String Key, Object Value);

Vous pouvez utiliser la méthode ci-dessus pour définir une variable de compteur d'accès et pour réinitialiser la même variable. Voici la méthode pour lire la variable définie par la méthode précédente -

application.getAttribute(String Key);

Chaque fois qu'un utilisateur accède à votre page, vous pouvez lire la valeur actuelle du compteur d'accès et l'augmenter de un et la définir à nouveau pour une utilisation future.

Exemple

Cet exemple montre comment vous pouvez utiliser JSP pour compter le nombre total d'appels sur une page particulière. Si vous souhaitez compter le nombre total de visites de votre site Web, vous devrez inclure le même code dans toutes les pages JSP.

<%@ page import = "java.io.*,java.util.*" %>

<html>
   <head>
      <title>Application object in JSP</title>
   </head>
   
   <body>
      <%
         Integer hitsCount = (Integer)application.getAttribute("hitCounter");
         if( hitsCount ==null || hitsCount == 0 ) {
            /* First visit */
            out.println("Welcome to my website!");
            hitsCount = 1;
         } else {
            /* return visit */
            out.println("Welcome back to my website!");
            hitsCount += 1;
         }
         application.setAttribute("hitCounter", hitsCount);
      %>
      <center>
         <p>Total number of visits: <%= hitsCount%></p>
      </center>
   
   </body>
</html>

Mettons maintenant le code ci-dessus dans main.jsp et appelez cette JSP en utilisant l'URL http://localhost:8080/main.jsp. Cela affichera la valeur du compteur d'accès qui augmente au fur et à mesure que vous actualisez la page. Vous pouvez essayer d'accéder à la page en utilisant différents navigateurs et vous constaterez que le compteur d'accès continuera d'augmenter à chaque appel et vous recevrez le résultat comme suit -

Welcome back to my website!

Total number of visits: 12

Réinitialisation du compteur de coups

Que faire lorsque vous redémarrez votre application, c'est-à-dire le serveur Web, cela réinitialisera votre variable d'application et votre compteur se remettra à zéro. Pour éviter cette perte, tenez compte des points suivants -

  • Définissez une table de base de données avec un seul comptage, disons hitcount. Attribuez-lui une valeur nulle.

  • À chaque appel, lisez le tableau pour obtenir la valeur de hitcount.

  • Augmentez la valeur de hitcount de un et mettez à jour la table avec une nouvelle valeur.

  • Afficher la nouvelle valeur de hitcount en tant que nombre total de visites sur la page.

  • Si vous souhaitez compter les appels pour toutes les pages, implémentez la logique ci-dessus pour toutes les pages.