Сеанс запускается в веб-браузере, когда он подключается к приложению. Tomcat закрывает сеанс на сервере, когда максимальный период бездействия прошел (30 минут).
Этот тайм-аут сбрасывается всякий раз, когда в веб-браузере действует активность, например, обновление текущей страницы или перемещение по другим страницам под управлением приложения. Простое открытие окна браузера не закрывает сеанс, поскольку он не генерирует никаких действий в браузере.
Вы можете установить его в файле web.xml, как описано.
Вы также можете установить его для session
объекта путем вызова setMaxInactiveInterval(int interval)
Этот параметр определяет время в секундах, между запросами клиента перед контейнером сервлетов аннулирует эту сессию.
Вы должны убедиться, что печенья является включен для вашего браузера. В противном случае вы создаете новый сеанс с каждым запросом. Вы должны позвонить HttpServletResponse.encodeURL(String url)
для каждого URL вашего приложения. Из статьи api doc:
«Кодирует указанный URL, введя в него идентификатор сеанса или, если кодировка не требуется, возвращает URL без изменений. Реализация этого метода включает в себя логику для определения того, является ли идентификатор сеанса должно быть закодированы в URL. Например, если браузер поддерживает куки, или отслеживание сеансов выключено, кодирование URL-адрес не является необходимым.
для надежного отслеживания сеанса, все URL-адрес, испускаемые сервлета должны проходить через этот метод. В противном случае переписывание URL-адресов не может использоваться с браузерами, которые не поддерживают файлы cookie ».
Связанный: [Java-экземпляр Java и переменные сеанса] (http://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables). – BalusC