2014-01-11 2 views
0

Мне нужно избегать следующего условия. Я запускаю сервлет. Этот сеанс будет истек в браузере после моего периода ожидания (WEB.XML). Получив этот тайм-аут, мне нужно перезагрузить эту ссылку в браузере, чтобы активировать этот сервлет. Я не хочу снова загружать ссылку, это должно быть создание нового сеанса после тайм-аута.Я хотел создать новый сеанс, как только текущий сеанс сервлета истек.

ответ

0

Правильное решение будет охватывать тайм-аут (session-timeout) в web.xml.

Ваш клиент, приложение JS в браузере должен подключиться к серверу, чтобы сообщить, что он по-прежнему жив.

+0

вместо увеличения таймаута. Я хочу сделать автоматическое обновление по программе, снова позвонив dopost/doget. если мне нужно добавить dopost/doget, где мне нужно добавить? в какой части он должен снова позвонить (для создания нового сеанса) – Arunjoshi

+0

Я думаю, что это невозможно. Ваш клиент (браузер) должен обрабатывать этот случай, без сервера. – MariuszS

0

Тайм-аут - это период бездействия до того, как сеанс убит сервером. Если вы хотите сохранить сеанс живым - даже если нет активности - тогда вы можете продлить время бездействия.

В качестве альтернативы вы можете написать Javascript AJAX keepalive, который каждые 5 минут отправляет на сервер пульс. Вы можете написать простой выделенный сервлет, чтобы получить этот keepalive и отправить обратно простой ответ. Сердцебиение будет считаться активностью - и, таким образом, сохранить сеанс живым.

This post дает пример Javascript (вопрос связан с C#, но это не имеет значения).

Смежные вопросы