Spring 3.1 MVC Framework Управление сессиями - PullRequest
2 голосов
/ 11 января 2012

В моем веб-приложении используются контроллеры на основе аннотаций (SPRING MVC). Я хотел реализовать SessionManagement в своем приложении

1.) Любая страница в приложении не должна простаивать в течение 15 минут

2.) На 10-й минуте должно быть открыто всплывающее окно, своего рода уведомление, чтобы уведомить пользователя об истечении сеанса abt и дать ему возможность продлить сеанс еще на 15 минут, или по умолчанию приложение должно регистрировать -off

Я считаю, что весной MVC должен быть простой способ (я использую весну 3.1). Скажем так, должен быть какой-то способ аннотировать контроллер или некоторую конфигурацию в applicationContext.xml. Должен быть какой-то путь! Друзья, пожалуйста, помогите мне, предложив способ, и было бы очень полезно, если вы вставите сюда какие-либо образцы. Также было бы очень полезно, если бы вы могли дать мне пошаговое руководство по реализации сеанса управления.

1 Ответ

3 голосов
/ 11 января 2012

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, сеанс автоматически продлевается снова и снова.

...