【发布时间】:2011-01-05 10:12:01
【问题描述】:
除此之外还有其他方法可以检查会话是否到期
session.isNew()
【问题讨论】:
除此之外还有其他方法可以检查会话是否到期
session.isNew()
【问题讨论】:
是的:
您可以致电HttpServletRequest.getSession(false),如果还没有活动,您将获得null 而不是会话。
您可以在您的web.xml 中定义一个生命周期侦听器(使用HttpSessionListener)。这样一来,您就可以在会话尘埃落定的那一刻得到通知。
【讨论】:
HttpSessionListener 是要走的路。只需挂上sessionDestroyed()。
使用session.isNew,您无法区分过期会话和全新会话。
您可以检查会话是否已过期和/或超时:
if (request.getRequestedSessionId() != null
&& !request.isRequestedSessionIdValid()) {
// Session is expired
}
使用getRequestedSessionId 区分新会话和现有(有效/过期)会话,使用isRequestedSessionIdValid 区分有效会话和新会话/过期会话。
您可以将此代码放入Filter。
【讨论】: