需求是这样的:当用户 session 过期时,调用expired.htm页面,但在第一次连接到网站时,显示login.htm。
我尝试使用过滤器但它不起作用,我无法告诉过滤器如何理解它是新请求还是旧请求已过期。这是我使用的代码:
if (session.getAttribute("userProfile") == null) {
logger.debug("Session: " + ( session.isNew() ? "true" : "false"));
logger.debug(request.getSession().isNew());
if ( request.getRequestedSessionId() != null && !request.isRequestedSessionIdValid() ) {
return new ModelAndView("redirect:expired.htm");
} else {
return new ModelAndView("redirect:login.htm");
}
}
我尝试了在 Stack Overflow 和一般互联网上提出的不同解决方案,但没有任何效果,每个请求都转到 expired.htm
。
最佳答案
如何获取 session 对象?在这样做之前,使用
if (request.getSession(false)==null) {
// no session present (expired or new visitor)
[... do something ...]
} else {
// active session present
}
关于java - 如何检测过期 session 与无 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502308/