Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Session, Как правильно завершить сессию 
V
    Опции темы
fics
  Дата 3.3.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Объясните пожалуйсто почему так происходить или это нормальное явление? Завершаю сессию методом:
Код

HttpSession session = request.getSession(true);
       session.getValue("login");
       session.invalidate();

При этом делаю 

Код

 response.sendRedirect("login.jsp");
 

Ввожу вручную URL защищенной страницы и попадаю на нее хотя :
Код

 if (session.getAttribute("login") == null)
 {
  response.sendRedirect("login.jsp");
 }

Правда я ничего не могу сделать на этой странице(кликая по какой то ссылке этой страницы снова попадаю на login.jsp)
--------------------
Ушел на пары
PM MAIL   Вверх
Kangaroo
Дата 3.3.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Вроде правильно завершаете.

А почем так происходит - покажите полный код, а то по этим отрывкам ничего не понятно.


--------------------
Lost....
PM MAIL MSN   Вверх
fics
Дата 3.3.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Вот моя защищенная страница (на которую, блин я попадаю)
Код

<%@ page contentType="text/html; charset=windows-1251" %>
<%@ page import="bookmarks.Bookmrk"%>
<html>
 <head>
  <title>
   bookmarks
  </title>

<script  type="text/javascript">
   function del_bk()
   {
     document.Fbookmark.submit();
   }
</script>

</head>


<body>
<form name="Fbookmark" action="delbookmarks.jsp">
<%

if (session.getAttribute("login") == null)
 {
  response.sendRedirect("login.jsp");
 }else{
   out.print("<b>"+session.getAttribute("login")+"</b>");%>
   <jsp:include page="skin/menu.jsp" flush="true"/><%
    Bookmrk bookmrk = new Bookmrk();
    bookmrk.PrintMarks(pageContext,(String)session.getAttribute("login"));
 }

%>
</form>

</body>
</html>



вот завершение из bookmarks.Bookmrk
Код

public boolean UserOut(HttpServletRequest request)
  {
    try
    {
      DBUtils DbUtils = new DBUtils();
      DbUtils.DBClose();
      HttpSession session = request.getSession(true);
      session.getValue("login");
      session.invalidate();
      return true;
    }
    catch(Exception e)
                     {
                      return false;
                     }


вот сценарий завершения:
Код

 <%@ page contentType="text/html; charset=windows-1251" %>
<%@ page import="javax.servlet.http.HttpServletRequest"%>
<%@ page import="bookmarks.Bookmrk"%>

<%
 Bookmrk bookmrk = new Bookmrk();
  if(bookmrk.UserOut(request))
  {
   response.sendRedirect("login.jsp");
  }else{out.println("Невозможно осуществить выход");}
%>

--------------------
Ушел на пары
PM MAIL   Вверх
necromancer
Дата 3.3.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



=) ну во превых можно было бы убрать весь ява код из страниц долой =)
ну это дело на любителя так сказать=)
далее почему бы не использовать стандартные возможности контейнера для аутентификации пользователей.
ну и на последок можно написать Filter в котором делать проверку пользователя и посылать его в редирект в случае доступа к защищенным страницам. Фильтр просто так обойти не удасся

кстати делать session.invalidate() крайне не рекомендую - это дополнительная нагрузка на сервер, так как после редиректа он все равно сессию поднимет.

Это сообщение отредактировал(а) necromancer - 3.3.2008, 20:07


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
fics
Дата 10.3.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 21.2.2008
Где: Луганск

Репутация: нет
Всего: нет



Ну не "умерает" сразу сессия после этого:

Код


 HttpSession session = request.getSession(true);
      session.getValue("login");
      session.invalidate();
 

если кинуть ссылку на <a href="title.jsp"  , то сразу после выше приведенного кода вылетает на login.jsp(так и должно быть)

код из title.jsp:
Код

if (session.getAttribute("login") == null)
 {
  response.sendRedirect("login.jsp");
 }


А вот если вручную вводить URL тогда я почему то все же попадаю на title.jsp

Ну должны же все по идее знать кто кодить на JSP эту проблему?
--------------------
Ушел на пары
PM MAIL   Вверх
Shurr
Дата 12.3.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 24.10.2006

Репутация: 1
Всего: 7



Кэширование страницы браузером исключено?
PM MAIL   Вверх
drHip
Дата 12.3.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



а зачем делать вот это
Код

     session.getValue("login");

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1136 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.