Как создать сессию для входа и выхода в Java

Это код, который я написал на странице входа

HttpSession session = request.getSession(true);
session.setAttribute("name", user1);        
String nme=(String) session.getAttribute("name");

И это код для logout.jsp

<% request.getSession().invalidate();

ИЛИ ЖЕ

if(session!=null){
   session=null;
}

ИЛИ ЖЕ

 request.getSession().setAttribute("name", null); //it just assigns null to attribute

 response.sendRedirect("login.jsp");
 %>

сеанс создается, но после того, как кнопка выхода из системы работает.... Я хочу, чтобы кнопка возврата не работала.

3 ответа

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

request.getSession().invalidate();

Теперь, после того как вы нажали кнопку "Назад" браузера, он загружает страницу из кэша. Таким образом, чтобы позаботиться об этой ситуации, вы можете сделать ниже 2 вещи.

  1. Управление историей браузера с использованием HTML 5 History API, чтобы при нажатии кнопки "Назад" он перемещался в нужное место при манипулировании им.

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

В качестве альтернативы вы можете написать и настроить класс перехватчика на стороне контейнера / сервера сервлета, чтобы управлять кешем, добавляя в ответ следующие параметры.

        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "-1");

Надеюсь, что это помогает вам.

Просто удалите атрибут из сеанса и проверьте, существует ли он.....

request.getSession.removeAttribute("name")

и проверить как:

if(request.getSession.getAttribute("name")==null){

}

Ваша проблема не в сеансе, так как он не будет использоваться на странице, которая уже была загружена и просто загружена из кэша (функциональность кнопки назад)

Рассмотрите возможность использования localtion.href.replace в вашем коде клиента.

localtion.href.replace (url): заменить текущий документ документом по указанному URL. Отличие от метода assign() состоит в том, что после использования replace() текущая страница не будет сохранена в истории сеансов, то есть пользователь не сможет использовать кнопку "Назад" для перехода к ней.

Другие вопросы по тегам