2015-02-19 2 views
1

У меня есть веб-приложение Java с двумя областями: public и private. Я настроил тайм-ауты сеанса для обеих областей. После таймаута сеанса мне нужно перенаправить на другую страницу.Как перенаправить на страницу после таймаута сеанса?

Если тайм-аут сеанса находится в публичной зоне, мне нужно перенаправить на домашнюю страницу, и если тайм-аут сеанса из частной области, мне нужно перенаправить на другую страницу с сообщением «Тайм-аут вашей сессии!» Как я могу это сделать ?

+0

Как и http://stackoverflow.com/questions/15573221/redirecting-after-httpsession-time-out – Saravana

ответ

0

Ну я не знаю, какие библиотеки или рамки вы используете, но в целом, вы можете моделировать события в Java с помощью шаблона Observer: http://en.wikipedia.org/wiki/Observer_pattern

Ваша логика «Перенаправление» будет Observer, вы зарегистрировать его в логики сеанса, и вы уведомляете об этом, когда что-то происходит с сеансом.

0

Я бы предложил вам создать HTTP-фильтр для этой цели. Этот фильтр отображается в частной зоне вашего сайта и делает следующие:

  1. Проверяет, является ли сеанс истек HttpServletRequest.getSession(false)
  2. , если он истек перенаправляет пользователя на страницу входа в систему.
+0

У меня уже есть фильтр, общий для публичной и частной зоны. В настоящее время в этом фильтре я перенаправляюсь на одну страницу с таймаутом сеанса. Как я могу дифференцировать общественную и частную зону, а затем перенаправить на соответствующие страницы? –

+0

Я предлагаю вам сделать это, используя разные URL-адреса. Например, поместите общедоступные ресурсы в каталог 'public' и все частные под' private'. Затем сопоставьте свой фильтр в приватном каталоге, используя тег 'filter-mapping' в' web.xml'. – AlexR

+0

Вы можете продолжить свой фильтр ... используйте запрос # getRequestURI(), чтобы проверить, соответствует ли URI URI публичной или закрытой странице и делает соответствующие переадресации. –

0

HttpSessionListener#sessionDestroyed() будет называться, если у вас есть ваш слушатель HttpSessionListener, настроенный в вашем DD.

Вы можете сделать это на основе этого вызова метода.

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