除此之外,还有其他方法可以检查会话的到期时间
session.isNew()
答案 0 :(得分:29)
是的:
您可以致电HttpServletRequest.getSession(false)
,如果没有活动,您将获得null
而不是会话。
您可以在HttpSessionListener
中定义生命周期监听器(使用web.xml
)。通过这种方式,您可以在会话咬人的那一刻得到通知。
答案 1 :(得分:24)
使用session.isNew
,您无法将过期的会话与全新的会话区分开来。
您可以通过以下方式检查会话是否已过期和/或超时:
if (request.getRequestedSessionId() != null
&& !request.isRequestedSessionIdValid()) {
// Session is expired
}
使用getRequestedSessionId
区分新会话和现有(有效/已过期)会话,并使用isRequestedSessionIdValid
区分有效会话和新会话/已过期会话。
您可以将此代码放在Filter。
中