Contador de visitantes
Hola a todos.
Alguien me puede decir como puedo hacer para tener un contador de usuarios que esten conectados a mi web.
El index es un html y pasa a un servlet donde comprueba el nombre del usuario.
¿Como puedo hacer un contador que sume cuando alguien se conecta y reste cuando deja la web?
Gracias de antemano
Alguien me puede decir como puedo hacer para tener un contador de usuarios que esten conectados a mi web.
El index es un html y pasa a un servlet donde comprueba el nombre del usuario.
¿Como puedo hacer un contador que sume cuando alguien se conecta y reste cuando deja la web?
Gracias de antemano
Cuando un usuario se conecta a la web, se crea una sesión para ese usuario. No hay manera de saber cuando ha dejado la web, pero esas sesiones tienen un time-out, de modo que puedes saber si un usuario está conectado o no por su sesión.
Y tú te preguntarás: ¿Cómo detecto yo cuando se crea y se destruye una sesión?? Es bastante sencillo, tienes que hacer una clase que implemente HttpSessionListener. Tendrás que codificar los métodos "public void sessionCreated(javax.servlet.http.HttpSessionEvent httpSessionEvent) {" para detectar la creación de una sesión y "public void sessionDestroyed(javax.servlet.http.HttpSessionEvent httpSessionEvent) {" para detectar la finalización de una sesión.
Esta clase Listener hay que registrarla en el web.xml del siguiente modo:
<listener>
<listener-class>devc.SessionConfig</listener-class>
</listener>
(Tiene que ir colocado justo antes de la declaración de los servlets, aunque de esto no estoy muy seguro, mírate el DTD del web.xml)
Espero haber podido ayudarte
Y tú te preguntarás: ¿Cómo detecto yo cuando se crea y se destruye una sesión?? Es bastante sencillo, tienes que hacer una clase que implemente HttpSessionListener. Tendrás que codificar los métodos "public void sessionCreated(javax.servlet.http.HttpSessionEvent httpSessionEvent) {" para detectar la creación de una sesión y "public void sessionDestroyed(javax.servlet.http.HttpSessionEvent httpSessionEvent) {" para detectar la finalización de una sesión.
Esta clase Listener hay que registrarla en el web.xml del siguiente modo:
<listener>
<listener-class>devc.SessionConfig</listener-class>
</listener>
(Tiene que ir colocado justo antes de la declaración de los servlets, aunque de esto no estoy muy seguro, mírate el DTD del web.xml)
Espero haber podido ayudarte
Lo que te dicen de la sesión es correcto, pero no es trivial hacerlo. Puedes hacerlo usando un applet, que te mande un mensaje al servlet en tanto que se esté ejecutando. Una vez se sale de la web, la ejecución del applet se detiene, con lo que te basta contar los mensajes de los aplets. Espero que te sirva
