jump to navigation

Modificar time-out de sesión Noviembre 12, 2006

Publicado por lineadecodigo en : Java , trackback

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.

Articulos Similares:

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 11800 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (Todavia sin evaluar)
Loading ... Loading ...

Comentarios»

1. Carlos Ramirez - Enero 12, 2007

Gracias por la info, es clara y va al grano, a seguir dandole…

saludos

2. anonymo - 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

3. 1 - Abril 19, 2007

chupa el perro, como haces para ver el tema del acceso concurrente

4. Alvin Human - 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.

5. ME-MO-RY - Mayo 28, 2010

que buen post gracias es bueno saber ese tipo de cosas que en algun momento pueden servir mucho

6. Txomin Gutierrez - 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?


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen