HttpSessionListener : compter les utilisateurs d'un site
1 réponse
Germain T
Bonjour,
Pour compter le nombre de sessions actives sur le site web, j'utilise
l'interface HttpSessionListener :
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;
}
}
Cela fonctionne bien, cependant dans le cas d'un utilisateur qui a configuré
son navigateur pour refuser les cookies, une session est créée à chaque
requête HTTP. Le compteur dépasse alors rapidement la centaine de session
(nombre de pages lues * nombre d'images).
C'est très embêtant mais je ne vois pas comment résoudre le problème. Peut
être ne pas comptabiliser les sessions, j'ai donc essayé :
public void sessionCreated(HttpSessionEvent se){
se.getSession().setAttribute("sessionok","ok");
if(se.getSession().getAttribute("sessionok")!=null)
activeSessions++;
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
David
Le Mon, 17 Apr 2006 20:04:40 +0200, Germain T a écrit :
Cela fonctionne bien, cependant dans le cas d'un utilisateur qui a configuré son navigateur pour refuser les cookies, une session est créée à chaque requête HTTP. Le compteur dépasse alors rapidement la centaine de session
Tu fais de l'URL rewriting, l'id de session est alors dans l'URL et ton container J2EE gère cela comme un cookie.
Le Mon, 17 Apr 2006 20:04:40 +0200, Germain T a écrit :
Cela fonctionne bien, cependant dans le cas d'un utilisateur qui a configuré
son navigateur pour refuser les cookies, une session est créée à chaque
requête HTTP. Le compteur dépasse alors rapidement la centaine de session
Tu fais de l'URL rewriting, l'id de session est alors dans l'URL et ton
container J2EE gère cela comme un cookie.
Le Mon, 17 Apr 2006 20:04:40 +0200, Germain T a écrit :
Cela fonctionne bien, cependant dans le cas d'un utilisateur qui a configuré son navigateur pour refuser les cookies, une session est créée à chaque requête HTTP. Le compteur dépasse alors rapidement la centaine de session
Tu fais de l'URL rewriting, l'id de session est alors dans l'URL et ton container J2EE gère cela comme un cookie.