Отображение сообщения после тайм-аута сеанса - PullRequest
1 голос
/ 04 февраля 2010

Я устанавливаю таймаут сеанса в web.xml приложения как

<session-config>
    <session-timeout> 1 </session-timeout>
</session-config> 

Так что теперь, после истечения сеанса, если пользователь пытается выполнить какую-либо операцию, я хочу показать сообщение «Сессия истекла relogin». Как это сделать на Java?

1 Ответ

1 голос
/ 04 февраля 2010

Я нашел несколько решений этой проблемы, введя в Google следующее:

"Сообщение об истечении сеанса Java"

Вот одно решение, скопированное из Интернета:

Создайте фильтр SessionTimeout.java и назначьте для фильтра шаблон /app/*.jsp в файле web.xml.Это приведет к тому, что мой фильтр будет вызываться при каждом запросе (т. Е. Когда пользователь нажимает кнопку через 30 минут).Исключите главную страницу (login / login.jsp) из этого фильтра, чтобы можно было установить новый сеанс.Код для фильтра очень прост:

public class SessionTimeout implements Filter{
   RequestDispatcher rd = null;

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
   throws IOException, ServletException{
      HttpServletRequest req = (HttpServletRequest)request;
      HttpSession session = req.getSession();

   // New Session so forward to login.jsp
   if (session.isNew()){
     requestDispatcher = request.getRequestDispatcher("/login/login.jsp");
     requestDispatcher.forward(request, response);
  }

  // Not a new session so continue to the requested resource
   else{
      filterChain.doFilter(request, response);
  }
}

public void init(filterConfig arg) throws ServletException{}
public void destroy(){}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...