我注意到jsessionId将被发送到服务器,因此在过滤器中,我实际上可以从cookie中获得过期的会话id。
可以像下面这样放一个过滤器逻辑吗?
Cookie jsessionCookie = getSessionIdCookies(request);
Session session = request.getSession(false);
if (session == null || !(jsessionCookie.getValue().equals(session.getId())) {
    //this should be a timeout handling
    ....
} else {
    // normal moving forward
}由于新请求(可以通过设置特定的过滤规则将其过滤掉)也可能导致session == null,我还能更多地依赖!(jsessionCookie.getValue().equals(session.getId())吗
或者甚至将request.getSession(false)更改为request.getSession(),并始终将cookie与会话id进行比较?
有没有更好的会话超时管理实践?
发布于 2015-10-08 15:48:24
您可以在ServletContext上注册HttpSessionListener,以便在会话无效时收到通知。
https://stackoverflow.com/questions/33009639
复制相似问题