То, как перенаправить к индексной странице, если сессия испытывает таймаут, произошло в jsf приложении

Я использую JSF RI 1.1. То, как перенаправить к индексной странице, если сессия испытывает таймаут, происходит?

25
задан Cœur 28 February 2017 в 15:47
поделиться

2 ответа

Есть два способа, которые можно комбинировать:

  1. Используйте заголовок обновления в HTML-элементе в сочетании с HttpSession #getMaxInactiveInterval () , который возвращает остаток секунд, в течение которых сеанс еще не был запущен.

      
     

    Этот подход автоматически перенаправит страницу на заданный URL по истечении сеанса.

  2. Перехватить ViewExpiredException в web.xml :

      
      javax.faces.application.ViewExpiredException  
      /index.jsf  
      
     

    Этот подход автоматически перенаправит запрос на указанный <местоположение> , когда был запущен запрос POST ( h: commandButton , h: commandLink и т. д.), когда сеанс истек.

Обратите внимание, что я лично предпочел бы промежуточную страницу с предупреждением «Сеанс истек» или предупреждение, чтобы избежать «wtf?» опыта и, таким образом, улучшить пользовательский опыт. Более того, я бы также предпочел запускать аяксический опрос каждую минуту, когда клиент проявил активность, прослушивая щелчок и нажатие клавиш , чтобы время жизни сеанса можно было еще больше отложить.

44
ответ дан 28 November 2019 в 20:36
поделиться

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

6
ответ дан 28 November 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: