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

Тайм-аут сеанса 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 можно получить по адресу: