Spring MVC здесь мало что может сделать.Предположим, у вас установлено время ожидания сеанса 15 минут.Просто поместите следующий код JavaScript на каждую страницу вашего сайта и запустите его после загрузки страницы:
function expireWarning() {
if(confirm("Your session will expire in 5 minutes, extend?")) {
$.ajax('/echo/json/');
setTimeout(expireWarning, 10 * 60 * 1000);
}
}
setTimeout(expireWarning, 10 * 60 * 1000);
Вот и все!Через 10 минут появится всплывающее окно.Если пользователь подтвердит, AJAX-запрос будет отправлен на сервер, автоматически продлевая сеанс.Затем счетчик переназначается для запроса у пользователя через 10 минут.
Обратите внимание, что цель AJAX на сервере не должна ничего делать.Единственная цель этого вызова - сообщить контейнеру, что пользователь все еще использует этот токен сеанса.
Еще один совет: если ваш сайт уже использует AJAX, вы должны перепланировать время ожидания после каждого вызова, потому что каждый вызов AJAXпродлевает сеанс также.Если пользователь остается на сайте и инициирует много вызовов AJAX, сеанс автоматически продлевается снова и снова.