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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сессии в Tomcat, Как изменить время жизни 
:(
    Опции темы
Powerhead
Дата 7.11.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Друзья, помогите, пожалуйста, решить такую проблему.

Tomcat автоматически создает пользовательскую сессию и ставит куку JSESSIONID, которая экспайрится при закрытии броузера. То есть, время сессии ограничено, с одной стороны, временем работы броузера, с другой: опцией <session-timeout>, которая, как я понимаю, отвечает за сешшн-таймаут на сервере.
Мне нужно чтобы сессия не экспайрилась при закрытии броузера, к примеру, 30 минут. То есть, я закрыл броузер, открыл и сессия восстановилась. Для этого нужно изменить expiration period куке JSESSIONID. 
Не могу разобраться, как это сделать, пол инета облазил.

Единственное что нашел вразумительного:

Цитата

you may be able to tweak the Tomcat session code to instead of using a temporary, browser based JSESSIONID cookie, make it permanent (but still expire in, say, an hour -- whatever timeout is suitable).


Цитата

you would probably have to hack either the cookie (presuming you manage to hold on to it) or the browser in order to get the browser to continue to use it, but that may depend on how the particular app server configures the cookies it uses.


но мне непонятно, как использовать эту информацию.

Я новичек в jsp, буду очень благодарен за совет.
В поиске был.
PM MAIL WWW ICQ   Вверх
y3u
Дата 7.11.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вобщем тебе надо почитать не пол инета, а официальную информацию с оффсайта, которой обязан удовлетворять любой вебконтейнер.
http://java.sun.com/javaee/5/docs/tutorial...Servlets11.html

В числе прочего там написано как правльно надо работать с сессией, в частности не только по кукису но и по ссылке... все просто smile

Это сообщение отредактировал(а) y3u - 7.11.2006, 21:35


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Tony
Дата 8.11.2006, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



A чем тебя куки не устраивет?


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


Опытный
**


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

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



а если отключены куки? вот чтобы не изобретать велосипед и знать как изначально нужно правильно бороться с этой ситуацией в тьюториле и написано про метод encodeURL... Томкат, небось, на автомате тоже самое делает, но не помешает знать об этом... 


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Powerhead
Дата 8.11.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



y3u, спасибо, но меня интересует только случай, когда куки включены.

Мне нужно поменять expiration period для куки JSESSIONID, которую tomcat устанавливает автоматически.
Может кто-нибудь знает, как это сделать? 
Версия tomcat 5.5

В php это делается элементарно, одной настройкой. Неужели такого нельзя сделать в tomcat?

Это сообщение отредактировал(а) Powerhead - 8.11.2006, 13:23
PM MAIL WWW ICQ   Вверх
y3u
Дата 8.11.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Powerhead @  7.11.2006,  20:31 Найти цитируемый пост)
То есть, время сессии ограничено, с одной стороны, временем работы броузера, с другой: опцией <session-timeout>, которая, как я понимаю, отвечает за сешшн-таймаут на сервере


в тексте написано как все на самом деле 

Цитата

Because there is no way for an HTTP client to signal that it no longer needs a session, each session has an associated timeout so that its resources can be reclaimed. The timeout period can be accessed by using a session's [get|set]MaxInactiveInterval methods. You can also set the timeout period in the deployment descriptor by setting an integer value with the session-timeout element, which is a child element of a session-config element. The integer value represents the number of minutes of inactivity that must pass before the session times out. 

To ensure that an active session is not timed out, you should periodically access the session via service methods because this resets the session's time-to-live counter.


таким образом получаем, что если стоит кука и session-timeout = 31 минуту, то если закрыть браузер и открыть его через 30 минут, то поднимется старая сессия и счетчик обнулится...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Powerhead
Дата 8.11.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как же она поднимется, если кука с сешшнайди заэкспайрилась? Это все равно что другой клиент из другой страны зайдет на эту же страницу.
Решение наконец-то нашел - перезаписывать куку вручную.

Код

javax.servlet.http.Cookie testCookie = new javax.servlet.http.Cookie("JSESSIONID",request.getSession().getId());
testCookie.setPath("/");
testCookie.setMaxAge(1800);
response.addCookie(testCookie);

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1043 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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