Isteklo vrijeme sesije Java

1. Pregled

Ovaj će vodič pokazati kako se postavlja vremensko ograničenje sesije u web aplikaciji koja se temelji na Servletu.

2. Istek vremena globalne sesije u web.xml

Vremensko ograničenje svih Http sesija može se konfigurirati u web.xml web aplikacije:

  ...  10  

Imajte na umu da je postavljena vrijednost vremenskog ograničenja za nekoliko minuta, ne u sekundama.

Zanimljivo je da je u okruženju Servlet 3.0, u kojem se bilješke mogu koristiti umjesto XML deskriptora implementacije, postoji nikako ne može programski postaviti globalno vremensko ograničenje sesije. Programska konfiguracija za vremensko ograničenje sesije ima otvoreno izdanje na Servlet Spec JIRA - ali problem još nije zakazan.

3. Programsko vremensko ograničenje po pojedinačnoj sesiji

Vrijeme isteka samo trenutna sesija mogu se programski navesti putem API-ja javax.servlet.http.HttpSession:

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

Za razliku od element koji je imao vrijednost u minutama, setMaxInactiveInterval metoda prihvaća vrijednost za nekoliko sekundi.

4. Isteklo vrijeme sesije Tomcat

Svi Tomcat poslužitelji pružaju zadane vrijednosti web.xml datoteka koja se može globalno konfigurirati za cijeli web poslužitelj - nalazi se u:

$ tomcat_home / conf / web.xml

Ovaj zadani deskriptor implementacije konfigurira a s vrijednošću od 30 minuta.

Pojedinačne postavljene aplikacije, pružajući vlastite vrijednosti vremenskog ograničenja web.xml deskriptori će imati prioritet nad i će nadvladati ovaj globalni web.xml konfiguracija.

Imajte na umu da je isto moguće i u Jettyju: datoteka se nalazi u:

$ jetty_home / etc / webdefault.xml

5. Zaključak

Ovaj tutorial raspravljao je o praktičnim aspektima kako konfigurirati vremensko ograničenje HTTP sesije u aplikaciji Servlet Java. Također smo ilustrirali kako se to može postaviti na razini web poslužitelja, kako u Tomcat-u, tako i u Jetty-u.

Implementacija ovih primjera može se naći u projektu github - ovo je projekt zasnovan na Eclipseu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.

Kada se projekt izvodi lokalno, početnoj stranici html može se pristupiti na: