Программно определить время ожидания сеанса Java - PullRequest
10 голосов
/ 16 декабря 2009

Есть ли способ для сервлета java / jsp определить время ожидания сеанса веб-сервера (в секундах, минутах и ​​т. Д.)? Я попытался посмотреть в HttpSession и System API, но не увидел ни одного свойства для определения времени ожидания сеанса веб-сервера. Я знаю, что это значение установлено в web.xml, но я проектирую библиотеку Java, которая должна определить это с помощью кода.

Примечание. Я разрабатываю универсальный веб-сервер и не могу рассчитывать на расширения, специфичные для поставщика.

Ответы [ 5 ]

10 голосов
/ 16 декабря 2009

HttpSession.getMaxInactiveInterval предоставляет это значение

int getMaxInactiveInterval ()

Возвращает максимальный интервал времени в секундах, в течение которого контейнер сервлета будет держать этот сеанс открытым между клиентскими обращениями. После в этом интервале контейнер сервлетов сделает недействительным сеанс. максимальный временной интервал может быть установлен с помощью setMaxInactiveInterval способ.

Возвращаемое значение, равное нулю или меньше, указывает на то, что время сеанса никогда не будет превышено.

Возвращает: целое число, указывающее количество секунд, в течение которых этот сеанс остается открытым между клиентскими запросами

5 голосов
/ 16 декабря 2009

В сервлете используйте:

int timeoutInSeconds = request.getSession().getMaxInactiveInterval();

В JSP используйте:

<p>Timeout in seconds: ${pageContext.session.maxInactiveInterval}</p>
3 голосов
/ 16 декабря 2009

Время ожидания сеанса определяется временем простоя, поэтому невозможно узнать, когда оно истечет.

Однако вы можете рассчитать следующий возможный тайм-аут при условии, что сеанс не доступен,

Date expiry = new Date(session.getLastAccessedTime() + session.getMaxInactiveInterval()*1000);

1 голос
/ 02 апреля 2014

Это код для получения значения времени ожидания:

<%= session.getMaxInactiveInterval() %>
0 голосов
/ 16 декабря 2009

Вы можете вызвать getMaxInactiveInterval для вашего объекта сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...