Тайм-аут сеанса Java
1. обзор
Из этого туториала Вы узнаете, как настроитьsession timeout in a Servlet based web application.
2. Глобальный тайм-аут сеанса вweb.xml
Тайм-аут всех Http-сессий можно настроить вweb.xml веб-приложения:
...
10
Обратите внимание, что значение тайм-аута установленоin minutes, а не в секундах.
Интересный побочный момент заключается в том, что в среде Servlet 3.0, где аннотации могут использоваться вместо дескриптора развертывания XML, естьno way to programmatically set the global session timeout. Программная конфигурация для тайм-аута сеанса имеет открытую проблему в Servlet Spec JIRA, но эта проблема еще не была запланирована.
3. Программный тайм-аут для отдельного сеанса
Тайм-аутthe current session only может быть указан программно через APIjavax.servlet.http.HttpSession:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60);
В отличие от элемента<session-timeout>, который имел значение в минутах, методsetMaxInactiveInterval принимает значениеin seconds.
4. Тайм-аут сеанса Tomcat
Все серверы Tomcat предоставляютa default web.xml file, которые можно настроить глобально для всего веб-сервера - он находится в:
$tomcat_home/conf/web.xml
Этот дескриптор развертывания по умолчанию настраивает для<session-timeout> значение 30 минут.
Отдельные развернутые приложения, предоставляющие собственные значения тайм-аута в собственных дескрипторахweb.xml, будут иметь приоритет над конфигурациейwill override this global web.xml.
Обратите внимание, что то же самое иpossible in Jetty as well: файл находится в:
$jetty_home/etc/webdefault.xml
5. Заключение
В этом руководстве обсуждались практические аспектыhow to configure the timeout of the HTTP Session в Java-приложении сервлета. Мы также проиллюстрировали, как это можно установить на уровне веб-сервера, как в Tomcat, так и в Jetty.
Реализацию этих примеров можно найти вthe github project - это проект на основе Eclipse, поэтому его должно быть легко импортировать и запускать как есть.
Когда проект запускается локально, доступ к домашней странице html можно получить по адресу: