Сессия меняется через несколько секунд: Java-сервлеты - PullRequest
0 голосов
/ 19 января 2012

У меня есть установка по умолчанию Tomcat 6.0, и у меня есть приложение, которое хранит информацию в переменной сеанса.

Кажется, моя сессия недействительна после короткого периода бездействия.Пока я перехожу на другую страницу каждые несколько секунд, данные сеанса есть, но если я перестаю щелкать примерно полминуты, идентификатор сеанса, который хранится в браузере, изменится.(Я подтвердил это, используя Firebug, и вижу то же поведение в IE8, который является моим целевым браузером.)

Почему это может происходить?В файле web.xml для моего приложения указаны 30-минутные сеансы, и я позвонил session.setMaxInactiveInterval(60), чтобы узнать, изменилось ли это что-нибудь, но, похоже, это не так.

Проверка работоспособности:

Мое веб-приложение web.xml запускается так:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
    version="2.5">
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>

Файл web.xml моего сервера содержит следующие строки:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

Ответы [ 2 ]

1 голос
/ 19 января 2012

В соответствии с этим , используемый вами метод воспринимает ввод как секунды, а не минуты, так что вам будет хуже.

Что касается остальных, я бы подумалкод, который использует сеанс, так как фрагмент web.xml выглядит нормально.

0 голосов
/ 19 января 2012

Некоторые из последних версий Tomcat 6 имеют функцию с именем « Фиксация сеанса », которая изменяет идентификатор сеанса после входа в систему.

...