我正在为具有持续交付的系统开发蓝绿色模式。我想强制用户在 30 分钟后切换服务器。我正在 JSF 2 中开发我的应用程序。无论用户是否处于活动状态,是否有一种简单的方法可以让会话在一段时间后结束?
问问题
165 次
1 回答
1
实现一个过滤器,它基本上完成以下工作:
HttpSession session = request.getSession();
if (session.isNew()) {
session.setAttribute("start", System.currentTimeMillis());
}
else {
long start = (Long) session.getAttribute("start");
if (System.currentTimeMillis() - start > (30 * 60 * 1000)) {
session.invalidate();
response.sendRedirect("expired.xhtml");
return;
}
}
chain.doFilter(request, response);
将此映射到感兴趣的 servlet 名称或 URL 模式。
这仅对系统时钟的变化敏感,请确保您的服务器始终运行 UTC。否则最好抓住System#nanoTime()
。
于 2012-05-21T13:16:12.087 回答