Java Session Timeout

1. Oversikt

Denne veiledningen viser hvordan du konfigurerer øktstimeout i et Servlet-basert webapplikasjon.

2. Global Session Timeout i web.xml

Tidsavbrudd for alle Http-økter kan konfigureres i web.xml av webapplikasjonen:

  ...  10  

Merk at verdien for tidsavbrudd er satt på få minutter, ikke på få sekunder.

En interessant sidenode er at det i et Servlet 3.0-miljø hvor merknader kan brukes i stedet for XML-distribusjonsbeskrivelsen, ingen måte å programmatisk sette den globale økttidsavbruddet. Programmatisk konfigurasjon for økttidsavbrudd har et åpent problem på Servlet Spec JIRA - men problemet er ennå ikke planlagt.

3. Programmatisk tidsavbrudd per individuell økt

Tidsavbrudd for bare gjeldende økt kan spesifiseres programmatisk via API for javax.servlet.http.HttpSession:

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

I motsetning til element som hadde en verdi i minutter, setMaxInactiveInterval metoden aksepterer en verdi på sekunder.

4. Tidsavbrudd for Tomcat-økt

Alle Tomcat-servere gir standard web.xml fil som kan konfigureres globalt for hele webserveren - denne ligger i:

$ tomcat_home / conf / web.xml

Denne standard distribusjonsbeskrivelsen konfigurerer en med til en verdi på 30 minutter.

Individuelle distribuerte applikasjoner, og gir sine egne tidsavbruddsverdier i sine egne web.xml deskriptorer vil ha prioritet over og vil overstyre dette globale web.xml konfigurasjon.

Vær oppmerksom på at det samme er mulig også i bryggen: filen ligger i:

$ jetty_home / etc / webdefault.xml

5. Konklusjon

Denne opplæringen diskuterte de praktiske aspektene av hvordan du konfigurerer tidsavbrudd for HTTP-økt i et Servlet Java-program. Vi illustrerte også hvordan dette kan settes på webservernivå, både i Tomcat og i Brygge.

Implementeringen av disse eksemplene finnes i github-prosjektet - dette er et formørkelsesbasert prosjekt, så det skal være enkelt å importere og kjøre som det er.

Når prosjektet kjører lokalt, kan du komme til hjemmesiden html på: