Рубрики
Без рубрики

Тайм-аут сеанса Java

Настройка тайм-аута сеанса в web.xml веб-приложения Java-сервлета и глобально для сервера Tomcat или Jetty.

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этом руководстве будет показано, как настроить тайм-аут сеанса в веб-приложении на основе сервлетов .

2. Тайм-аут глобальной сессии в web.xml

Тайм-аут всех сеансов Http можно настроить в web.xml веб-приложения:




    ...
    
        10
    

Обратите внимание , что значение тайм-аута устанавливается в минутах , а не в секундах.

Интересным замечанием является то, что в среде Servlet 3.0, где аннотации могут использоваться вместо дескриптора развертывания XML, нет способа программно установить тайм-аут глобального сеанса . Программная конфигурация для тайм – аута сеанса действительно имеет открытую проблему в спецификации сервлета JIRA, но эта проблема еще не была запланирована.

3. Программный Тайм-аут для каждого отдельного сеанса

Тайм-аут только текущего сеанса может быть задан программно через API javax.servlet.http.HttpSession :

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

В отличие от элемента , который имел значение в минутах, метод setMaxInactiveInterval принимает значение в секундах .

4. Тайм-аут сеанса Tomcat

Все серверы Tomcat предоставляют значение по умолчанию web.xml файл , который может быть настроен глобально для всего веб – сервера-он находится в:

$tomcat_home/conf/web.xml

Этот дескриптор развертывания по умолчанию настраивает <тайм-аут сеанса> со значением 30 минут.

Отдельные развернутые приложения, предоставляющие свои собственные значения времени ожидания в своих собственных web.xml дескрипторы будут иметь приоритет над и переопределят этот глобальный web.xml конфигурация.

Обратите внимание, что то же самое возможно и в Jetty : файл находится в:

$jetty_home/etc/webdefault.xml

5. Заключение

В этом учебном пособии обсуждаются практические аспекты как настроить тайм-аут HttpSession в Java-приложении сервлета. Мы также проиллюстрировали, как это можно установить на уровне веб-сервера, как в Tomcat, так и в Jetty.

Реализацию этих примеров можно найти в проекте github – это проект на основе Eclipse, поэтому его должно быть легко импортировать и запускать как есть.

Когда проект выполняется локально, html-код домашней страницы можно получить по адресу: