Tempo limite da sessão Java

Tempo limite da sessão Java

1. Visão geral

Este tutorial mostrará como configurarsession timeout in a Servlet based web application.

2. Tempo limite de sessão global emweb.xml

O tempo limite de todas as sessões Http pode ser configurado emweb.xml do aplicativo da web:




    ...
    
        10
    

Observe que o valor do tempo limite é definido comoin minutes, não em segundos.

Um sidenode interessante é que, em um ambiente Servlet 3.0 onde as anotações podem ser usadas em vez do descritor de implantação XML, háno way to programmatically set the global session timeout. A configuração programática do tempo limite da sessão tem um problema em aberto no Servlet Spec JIRA - mas o problema ainda não foi agendado.

3. Tempo limite programático por sessão individual

O tempo limite dethe current session only pode ser especificado programaticamente por meio da API dejavax.servlet.http.HttpSession:

HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60);

Ao contrário do elemento<session-timeout> que tinha um valor em minutos, o métodosetMaxInactiveInterval aceita um valorin seconds.

4. Tempo Limite da Sessão do Tomcat

Todos os servidores Tomcat fornecema default web.xml file que podem ser configurados globalmente para todo o servidor web - localizado em:

$tomcat_home/conf/web.xml

Este descritor de implantação padrão configura<session-timeout> com um valor de 30 minutos.

Os aplicativos individuais implantados, fornecendo seus próprios valores de tempo limite em seus próprios descritoresweb.xml, terão prioridade sobre a configuração dewill override this global web.xml.

Observe que o mesmo épossible in Jetty as well: o arquivo está localizado em:

$jetty_home/etc/webdefault.xml

5. Conclusão

Este tutorial discutiu os aspectos práticos dehow to configure the timeout of the HTTP Session em um aplicativo Servlet Java. Também ilustramos como isso pode ser definido no nível do servidor da Web, tanto no Tomcat quanto no Jetty.

A implementação desses exemplos pode ser encontrada emthe github project - este é um projeto baseado em Eclipse, portanto, deve ser fácil de importar e executar como está.

Quando o projeto é executado localmente, o html da página inicial pode ser acessado em: