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å: