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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поддержание сессий, cookies и другие способы 
:(
    Опции темы
Georg4
Дата 27.6.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот у меня модуль который логинится (допустим к БД) через обычную страницу JSP c JSF.
Как я могу сделать удержание сессии, тчобы пользователь один раз логинился,  и до закрытия страницы и минут 10 после того как, повторного логина не нужно было бы.


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
batigoal
Дата 27.6.2007, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Закрытие страницы ты отследить не сможешь. А вот время жизни сессии можно задавать через выставление session-timeout в web.xml.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Georg4
Дата 27.6.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Тоесть ты хочешь сказать, что если я в web.xml

создам запись типа:

<session-config>
      <session-timeout>5</session-timeout>    
    </session-config>

То сессия будет держаться 5 минут и это всё что мне нужно сделать?

А может кукисы лучше?


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
ekr
Дата 27.6.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

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



Цитата(Georg4 @  27.6.2007,  11:14 Найти цитируемый пост)
А может кукисы лучше?

HttpSession - серверный объект и привязывается к конкретному клиенту (браузеру) контейнером автоматически. Или кукисами или url-rewritng.
Так что руками работать с кукисами - дублировать функционал контейнера )


--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
MisterCleric
Дата 27.6.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

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



To batigoal
Отследить закрытие страницы можно. Через javascript на событий window.onunload. А дальше можно отправить Ajax-запрос и сделать с сессией все что хочешь. 
Мне например надо удалить из определенного мэпа ссылку на сессию залогиненного юзера: так как юзер вышел, то и отслеживать его сессию нет смысла


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Tony
Дата 27.6.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



batigoal, Закрытие страницы ты отследить не сможешь. Eto po4emu ? <body onbeforeunload="invokeAjaxExit()"> </body>


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Maksym
Дата 27.6.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



MisterCleric
Tony
Этот способ не дает гарантии. Браузер может быть выгружен аварийно и никакого запроса отправить не успеет.
PM MAIL   Вверх
Georg4
Дата 27.6.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ребяты!

Я уже начал думать про сессии.

Делаю так:
в faces-config.xml
<managed-bean>
        <managed-bean-name>LoginSession</managed-bean-name>
        <managed-bean-class>session.LoginSession</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

web.xml:

Теперь собственно пытаюсь написать код:

Код

package session;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginSession extends HttpServlet {
    public void service(HttpServletRequest req, 
              HttpServletResponse res)
    throws ServletException, IOException {
        HttpSession session = req.getSession();    
    
    }
}



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

Так вот....
Как нужно написать функицю, чтобы держать эту дурацкую сессию. Тоесть если я снова перенаправлюсь на страницу логина, чтобы уже не нужно его было набирать.


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Tony
Дата 27.6.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Цитата(Maksym @ 27.6.2007,  12:32)
MisterCleric
Tony
Этот способ не дает гарантии. Браузер может быть выгружен аварийно и никакого запроса отправить не успеет.

On srabotaet na 100%. Ne srabotaet esli sobitie onunload="" togda da(ne vsegda otlavlivaet). No dlja polnogo kontrolja mozhno eshjo sessionListener povesit'.

Добавлено через 1 минуту и 52 секунды
Georg4, Esli u tebja JSF nafig tebe extends HttpServlet?


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Maksym
Дата 27.6.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Georg4
Работа с сессией полностью возложена на контейнер, все происходит автоматически.

Добавлено через 2 минуты и 39 секунд
Tony
Не будет скрипт обрабатываться и что-то там куда-то слать если браузер фатально вываливается по ошибке, а юзеров, у которых браузер падает каждые 10 минут (потому что на него понаставлено куча левых плагинов) -- миллион.
PM MAIL   Вверх
Georg4
Дата 27.6.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Работа с сессией полностью возложена на контейнер, все происходит автоматически.


Не совсем тебя понял.
Ты хочешь сказать, что отлавливать Ид сессии не нужно и только определил его в ХМЛ  и оно само работает?

Добавлено через 1 минуту и 38 секунд
Цитата

 Esli u tebja JSF nafig tebe extends HttpServlet?


Как это в JSF сделать?

Добавлено через 11 минут и 11 секунд
Просто когда у меня сессия в ХМЛ файле вот так  определена и я залогиниваюсь, то в строке браузера появляется session ID, и когда я открываю страницу новую и просто вставляю эту строку, то появляется страница логина с последним именем в текстовом поле "Логин" и пустым полем "Пароль".
Как сделать, так чтобы она автоматом в случае правильного  пароля  и логина отправляла сразу на следущую за этим страницу?

Добавлено через 14 минут и 9 секунд
Типа галочки запомнить пароль и автовхода на сайт


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Maksym
Дата 27.6.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Georg4
Цитата(Georg4 @  27.6.2007,  13:55 Найти цитируемый пост)
оно само работает?

Да, само. Попробуй положить в сессию (которую ты уже получил в коде выше) какой нибудь атрибут и менять его при каждом обращении. Обнаружишь, что сессия поддерживается в течение всего сеанса пользователя.

PM MAIL   Вверх
Georg4
Дата 27.6.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну я уже увидел, что остается имя в логине.

Но вот вопрос с паролем!

Как его сохранить.

Как я уже писал:

Типа галочки запомнить пароль и автовхода на сайт 


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Tony
Дата 27.6.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Цитата(Maksym @ 27.6.2007,  13:43)
Georg4
Работа с сессией полностью возложена на контейнер, все происходит автоматически.

Добавлено @ 13:46
Tony
Не будет скрипт обрабатываться и что-то там куда-то слать если браузер фатально вываливается по ошибке, а юзеров, у которых браузер падает каждые 10 минут (потому что на него понаставлено куча левых плагинов) -- миллион.

Nu tak ja i govorju 4to dlja ponogo kontrolja nado povesit' sessionListener.

Добавлено через 2 минуты и 17 секунд
Georg4,  Как это в JSF сделать? Napisal? Ili primer prislat' ?


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Georg4
Дата 27.6.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот ещё что!

У меня есть индекс пейдж, который форвардит на страницу логина

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    version="2.0">
<html>
    <head><title>JSF Login </title></head>

    <body>
        <jsp:forward page="login.faces"/>
    </body>
</html>
</jsp:root>

Так вот!
Если залогиниться, и снова выйти на индекс, то он будет форвардить на "login.faces" без ID сессии.
Тоесть на пустую форму.
Может можно туда-как топередать строку с ID сесссии?

Добавлено через 4 минуты и 36 секунд
Цитата

Georg4,  Как это в JSF сделать? Napisal? Ili primer prislat' ? 



Давай, чтоли, пример...


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0836 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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