2012-03-22 5 views
0

Как я могу узнать время выхода из системы, когда пользователь закрывает браузер без выхода из системы?получить время выхода из системы без выхода из системы

Так я осуществил HttpSessionBindingListener взято из here и добавлено Listener in web.xml, но время выхода не вставляется в базу данных после закрытия браузера. Любое предложение, пожалуйста, где я неправ?

logout.jsp

+0

Одним из вариантов является реализация обработчика событий выгрузку, как описано в [http://stackoverflow.com/questions/2621927/ondemand-javascript-call-on-window-unload-using-jquery][1] [1]: http://stackoverflow.com/questions/2621927/ondemand-javascript-call-on-window-unload-using-jquery – Baski

ответ

1

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

+0

yes 'session' становится недействительным через 30 минут, как указано в' web. xml' как я могу узнать, что этот сеанс недействителен в logout.jsp? – Tom

+0

Вы можете реализовать SessionListener (http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSessionListener.html) и сохранить текущее время при вызове 'sessionDestroyed'. –

+0

благодарит Mathias за ваш ответ. Я пытаюсь реализовать свой метод. – Tom

0

Вы можете использовать JavaScript window.onbeforeunload для отправки запроса AJAX сервлету, чтобы записать время, когда пользователь закрыл браузер и выполнил то, что вам нужно в объекте сеанса.

+0

onbeforeunload будет вызываться не только при закрытии браузера. –

+0

спасибо Behrooz за ваш ответ, но можете ли вы добавить немного больше своего ответа, чтобы я мог его реализовать, как я должен использовать этот 'window.onbeforeunload'? – Tom

+0

не является onbeforeunload нестандартным? – Baski

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