Ответ BalusC помог мне выполнить это требование в моем приложении, но, поскольку я использую PrimeFaces, я хотел поделиться тем, как ответ BalusC вдохновил код, который я использую для этого.
xhtml page
<p:poll listener="#{pf_usersController.keepUserSessionAlive()}"
interval="#{session.maxInactiveInterval - 10}" />
фасоль
public void keepUserSessionAlive() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
request.getSession();
}
как всегда, спасибо, BalusC!
РЕДАКТИРОВАТЬ: Enduser проверил это сегодня утром, и он отлично работает! мое приложение обычно устанавливает тайм-аут сеанса через 15 минут после полного обновления страницы (перенаправьте в файл sessionExpired.xhtml с помощью мета-обновления на основе session.maxInactiveInterval и значения времени ожидания сеанса в web.xml); если пользователь на одной странице выполняет несколько запросов AJAX, время сеанса истечет, так как AJAX! = полное обновление страницы, но этот код позволил конечному пользователю «поддерживать сеанс», пока он находился на странице расчета в приложении, а сеанс оставался живым от 1 до 2 часов! :)