Программно определите тайм-аут сессии Java

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

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

10
задан David 16 December 2009 в 14:44
поделиться

4 ответа

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

int getMaxInactiveInterval ()

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

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

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

10
ответ дан 3 December 2019 в 20:04
поделиться

При использовании сервлета:

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

При использовании JSP:

<p>Timeout in seconds: ${pageContext.session.maxInactiveInterval}</p>
5
ответ дан 3 December 2019 в 20:04
поделиться

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

0
ответ дан 3 December 2019 в 20:04
поделиться

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

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

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

3
ответ дан 3 December 2019 в 20:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: