Автор оригинала: 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-код домашней страницы можно получить по адресу: