Как закончить сеанс браузера в случае неактивности пользователя в Java? - PullRequest
0 голосов
/ 26 декабря 2011

я хочу прервать сеанс моего браузера в случае неактивности пользователя в течение 1 минуты в моем веб-приложении?Я попытался сделать две вещи: -

Подход 1: - поместить следующий код в web.xml

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

Подход 2: -

session.setMaxInactiveInterval(1*60);

Оба подхода не прекращают сеанс.Я могу продолжить, даже если пользователь не выполняет действия в течение 3 минут?

Когда он не работает: - он не работает, когда я захожу на экран входа в систему напрямую и делаюлогин.

, когда он работает: - Хотя тот же подход работает, когда я интегрирую вышеупомянутое веб-приложение с одним из моих различных веб-приложений, скажем, webapp2.Что происходит в этом случае, я предоставил ссылку на webapp2, которая напрямую выводит меня на webapp1, не спрашивая учетные данные для входа.Здесь выход из системы работает, если пользователь не выполняет действия в течение 1 минуты?

Я не понимаю, почему он не работает в первом случае, когда я выполняю вход вручную, хотя web.xml такой же, и класс гдея положил session.setMaxInactiveInterval (1 * 60) выполняется в обоих случаях?

1 Ответ

0 голосов
/ 26 декабря 2011

Время сеанса истекло, только когда сервер обнаружил неактивность на стороне клиента на период, определенный в web.xml / session / session-time-out. Вы должны проверить, работает ли он или нет, отправив запрос от клиента, и после получения ответа просто закройте окно браузера. Отправить еще один запрос после истечения времени ожидания сеанса. Проверьте, является ли это новый сеанс (проверьте sessionID). Дальнейшая помощь? enter code here читайте ниже -

Что ж, есть вещь, называемая слушателем веб-приложений для веб-приложений на основе Java. Эти слушатели слушают запросы, сессии и связанные с ними вещи клиентов. Для обработки тайм-аута сессии вы можете использовать слушатели сессии. Шаг 1. Измените файл web.xml, чтобы включить прослушиватель веб-приложений:

<listener>
    <listener-class>some.package.name.MySessionListener</listener-class>
</listener>

А теперь создайте вышеупомянутый класс в вашем исходном каталоге:

package some.package.name;

public class SessionListener implements javax.servlet.http.HttpSessionListener {

    public void sessionCreated(HttpSessionEvent arg0) {
        //write your own code for when new session is created.
    }

    public void sessionDestroyed(HttpSessionEvent arg0) {
        //Write your own c`enter code here`ode for when session is destroyed.
    }
}

Надеюсь, вы найдете это полезным. :).

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