Batas Waktu Sesi Java

1. Ikhtisar

Tutorial ini akan menunjukkan cara mengatur batas waktu sesi dalam aplikasi web berbasis Servlet .

2. Batas Waktu Sesi Global di web.xml

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

  ...  10  

Perhatikan bahwa nilai batas waktu ditetapkan dalam menit , bukan dalam detik.

Sidenode yang menarik adalah, di lingkungan Servlet 3.0 di mana anotasi dapat digunakan sebagai pengganti deskriptor penerapan XML, tidak ada cara untuk menyetel waktu tunggu sesi global secara terprogram . Konfigurasi terprogram untuk batas waktu sesi memang memiliki masalah terbuka di Servlet Spec JIRA - tetapi masalah tersebut belum dijadwalkan.

3. Batas Waktu Terprogram per Sesi Individual

Waktu tunggu sesi saat ini hanya dapat ditentukan secara terprogram melalui API javax.servlet.http.HttpSession :

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

Berbeda dengan elemen yang memiliki nilai dalam hitungan menit, metode setMaxInactiveInterval menerima nilai dalam hitungan detik .

4. Batas Waktu Sesi Tomcat

Semua server Tomcat menyediakan file web.xml default yang dapat dikonfigurasi secara global untuk seluruh server web - ini terletak di:

$tomcat_home/conf/web.xml

Deskriptor penerapan default ini mengonfigurasi a dengan nilai 30 menit.

Aplikasi yang diterapkan individu, memberikan nilai waktu tunggu mereka sendiri di deskriptor web.xml mereka sendiri akan memiliki prioritas di atas dan akan menimpa konfigurasi web.xml global ini .

Perhatikan bahwa hal yang sama juga mungkin terjadi di Jetty: file tersebut terletak di:

$jetty_home/etc/webdefault.xml

5. Kesimpulan

Tutorial ini membahas aspek praktis tentang cara mengonfigurasi waktu tunggu Sesi HTTP di aplikasi Java Servlet. Kami juga mengilustrasikan bagaimana ini dapat disetel di tingkat server web, baik di Tomcat maupun di Jetty.

Penerapan contoh ini dapat ditemukan di proyek github - ini adalah proyek berbasis Eclipse, jadi semestinya mudah untuk mengimpor dan menjalankannya apa adanya.

Ketika proyek berjalan secara lokal, html beranda dapat diakses di: