Время ожидания сеанса с веб-приложением Ajax Polling в Spring - PullRequest
3 голосов
/ 11 марта 2011

Я занимаюсь разработкой веб-приложения на основе Spring 3.0, которое требует от всех пользователей входа в систему для просмотра данных.После входа в систему некоторые части экрана используют механизм опроса AJAX для обновления содержимого экрана в фоновом режиме.В настоящее время наш сеанс не будет иметь тайм-аут, потому что каждый ajax-запрос к серверу обновляет тайм-аут веб-приложения, а сеанс никогда не прерывается.

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

Как мне поступить?

Ответы [ 2 ]

0 голосов
/ 06 мая 2011

Как насчет использования <% @ page session = "false"%> для страниц, которые доставляют данные ajax.Поскольку эти страницы не будут привязаны к сеансу, время ожидания сеанса может не обновляться.

0 голосов
/ 12 марта 2011

Вам придется разбираться во внутренностях вашего контейнера сервлета.

Вот что я бы сделал

  • Найдите в Google "доступ к сеансу контейнера сервлета xhr XmlHttpRequest" и посмотрите, появится ли что-нибудь интересное (мне сейчас лень это делать)
  • Какой бы энтерин сервлета вы ни использовали, потяните код локально и посмотрите на реализацию сеанса. В частности, вы хотите выяснить, что является установкой значения, которое возвращается javax.servlet.http.HttpSession.getLastAccessedTime. Когда вы найдете это, работайте в обратном направлении, чтобы узнать, как вы можете настроить это. Я почти уверен, что вы можете сделать это с Tomcat, расширив один из его внутренних классов и используя свой собственный класс, установив его в своем XML-файле конфигурации.
...