Je trouve un certain nombre de solutions à ce problème en entrant ce qui suit dans Google:
"session de Java a expiré message"
est ici une solution copiée à partir du Web:
Créer un filtre SessionTimeout.java et affectez au filtre un modèle /app/*.jsp dans le fichier web.xml. Ce provoquera l'appel de mon filtre à chaque demande (c'est-à-dire lorsque l'utilisateur tape au bout de 30 minutes). Exclure la page principale (login/login.jsp) de ce filtre afin qu'une nouvelle session puisse être établie. Le code pour le filtre est très simple:
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(){}
}