Java » Modificar time-out de sesión
Cuando un usuario realiza una conexión contra una aplicación web se le crea una sesión. La sesión es la identidad que tiene dicho usuario en el servidor hasta que se desconecta.
En la sesión de un usuario se podrá almacenar información que queramos que previva mientras el usuario permanezca conectado a nuestra web.
Y esta última frase es el kit de la cuestión. ¿Cúando sabemos que un usuario se ha desconectado? Pues es difícil, ya que el protocolo HTTP es sin estado y las peticiones vienen y van sin un control. Es por ello que la única forma de saber que un usuario se ha ido es indicando un tiempo de caducidad de la sesión, más conocido como timeout de sesión.
Dependiendo del contenedor de servlets que estemos utilizando, este establecerá el timeout de sesión en un valor u otro atendiendo a unos parámetos de configuración.
Por ejemplo, Tomcat utiliza el fichero /conf/web.xml para configurarla, como podemos ver en estas líneas de código:
<!-- ==== Default Session Configuration ==== --> <!-- You can set the default session timeout (in minutes) for all newly --> <!-- created sessions by modifying the value below. --> <session-config> <session-timeout>30</session-timeout> </session-config>
Como vemos, establece 30 minutos como tiempo máximo de inactividad.
Pero cuando creemos una aplicación podemos indicar un tiempo de timeout sobre esta aplicación. Y es que quien no nos dice que nuestra aplicación pueda correr sobre varios contenedores de servlets.
Para configurar el timeout de la sesión de nuestra aplicación deberemos de configurar el descriptor de despliegue de la misma (/WEB-INF/web.xml). Para ello utilizremos la etiqueta < session-config> y anidada a ella <session-timeout>. Vamos, que son las mismas etiquetas que utiliza Tomcat.
Así, el código nos quedaría de la siguiente forma:
<session-config> <session-timeout>10</session-timeout> </session-config>
En este caso establecemos el tiempo de timeout a 10 minutos.
![]() Descargar el código | ![]() Error en el código | ![]() Foro sobre Java Servlet |
Artículos relacionados:









Enero 12, 2007 #
Gracias por la info, es clara y va al grano, a seguir dandole…
saludos
Abril 16, 2007 #
hola yo quiero saber si solo hay que decirle en el web.xml el tiempo de sesion (time-out) y listo cuando pase el tiempo que uno le define, la aplicacion se sale sola o hay que ponerle algun codigo en el servlet y para que tome el valor que esta en el web.xml y si es asi como se podria hacer eso.
muchas gracias por la inf. =D
Abril 19, 2007 #
chupa el perro, como haces para ver el tema del acceso concurrente
Abril 20, 2007 #
Por error puse así:
21600000
Pero al parecer mantenia el valor de timout por defecto he ignoraba lo que puse.
Por favor confirmarme eso.
Mayo 28, 2010 #
que buen post gracias es bueno saber ese tipo de cosas que en algun momento pueden servir mucho
Julio 29, 2010 #
tengo una consulta sobre eso exactamente, en mi aplicacion la session se vence al X tiempo y lo manda a la pagina de logeo again cuando trata algo despues de vencida la session, al momento de entrar no se pq trata de llegar a lo ultimo que estaba haciendo la persona cosa qeu si era alguna consulta o algo que requeria datos dara un error. Existe alguna solucion para este problema?
Febrero 24, 2011 #
Gracias, muy util el post.
Abril 27, 2011 #
Gracias! simple y preciso!