Tamat Waktu Sesi Java

1. Gambaran keseluruhan

Tutorial ini akan menunjukkan cara mengatur timeout sesi dalam aplikasi web berasaskan Servlet .

2. Waktu Sesi Sesi Global di web.xml

Waktu tamat semua Sesi Http dapat dikonfigurasi di web.xml aplikasi web:

  ...  10  

Perhatikan bahawa nilai timeout ditetapkan dalam beberapa minit , bukan dalam beberapa saat.

Satu sidenode yang menarik ialah, dalam lingkungan Servlet 3.0 di mana anotasi dapat digunakan dan bukannya deskriptor penyebaran XML, tidak ada cara untuk menetapkan waktu tamat sesi global secara program . Konfigurasi teratur untuk tamat sesi tidak mempunyai masalah terbuka pada Servlet Spec JIRA - tetapi masalahnya belum dijadualkan.

3. Timeout Berprogram setiap Sesi Individu

Waktu tamat sesi semasa hanya dapat ditentukan secara teratur melalui API javax.servlet.http.HttpSession :

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

Berbanding dengan elemen yang mempunyai nilai dalam beberapa minit, kaedah setMaxInactiveInterval menerima nilai dalam beberapa saat .

4. Waktu Tamat Sesi Tomcat

Semua pelayan Tomcat menyediakan fail web.xml lalai yang dapat dikonfigurasi secara global untuk seluruh pelayan web - ini terletak di:

$tomcat_home/conf/web.xml

Deskriptor penyebaran lalai ini mengkonfigurasi a dengan nilai 30 minit.

Aplikasi yang dikerahkan secara individu, memberikan nilai masa tamat mereka sendiri dalam perihal web.xml mereka sendiri akan lebih mengutamakan dan akan mengatasi konfigurasi web.xml global ini .

Perhatikan bahawa perkara yang sama juga berlaku di Jeti: failnya terletak di:

$jetty_home/etc/webdefault.xml

5. Kesimpulan

Tutorial ini membincangkan aspek praktikal bagaimana mengkonfigurasi batas waktu Sesi HTTP dalam aplikasi Servlet Java. Kami juga menggambarkan bagaimana ini dapat disetel di peringkat pelayan web, baik di Tomcat maupun di Jeti.

Pelaksanaan contoh-contoh ini dapat dijumpai dalam projek github - ini adalah projek berasaskan Eclipse, jadi mudah untuk diimport dan dijalankan sebagaimana adanya.

Apabila projek dijalankan secara tempatan, html laman utama dapat diakses di: