2013-12-04 7 views
0

Я хотел бы создать сервис/сервлет, который получает время в минутах и ​​изменить значение тайм-аута сеанса, то есть я хочу изменитьИзменить время сеанса с услугой

<session-config> 
    <session-timeout>1</session-timeout> 
</session-config> 

Я знаю, что

request.getSession(true).setMaxInactiveInterval(seconds); 

изменяет только текущее изображение, а не все сеансы.

ответ

0

Без какого-либо расширения и в зависимости от собственных классов Tomcat, я бы не знал, как можно изменить программный вариант по умолчанию <session-timeout>, как только это будет установлено.

Альтернативным методом может быть сохранение измененного значения таймаута сеанса отдельно (возможно, в базе данных), - которое ваша служба может нести ответственность за обновление/извлечение. Затем вы можете использовать HttpSessionListener для изменения тайм-аута для вновь созданных сеансов на основе этого значения.

Например:

public class SessionTimeoutModifier implements HttpSessionListener { 

    public void sessionCreated(HttpSessionEvent event) { 
     int timeout = sessionService.getSessionTimeout(); // Gets your value 
     event.getSession().setMaxInactiveInterval(timeout); // Override default 
    } 

    ... 

Веб передний конец (сервлет) может затем быть разработаны, которые могут мутировать свой тайм-аут сеанса через sessionService.setSessionTimeout(value).

Не тот точный ответ, который вы ищете, но один из возможных способов его достижения.

+0

Спасибо! я попробую – lior

Смежные вопросы