Session 设置用户可以登录的最长时间,无论其活动如何

Session 设置用户可以登录的最长时间,无论其活动如何,session,jsf-2,time,max,Session,Jsf 2,Time,Max,我正在为一个连续交付的系统开发蓝绿色模式。我想强制用户在30分钟后切换服务器。我正在用JSF2开发我的应用程序。无论用户是否处于活动状态,是否有一种简单的方法可以使会话在特定时间后结束?实现一个基本上完成以下工作的会话: HttpSession session = request.getSession(); if (session.isNew()) { session.setAttribute("start", System.currentTimeMillis()); } else {

我正在为一个连续交付的系统开发蓝绿色模式。我想强制用户在30分钟后切换服务器。我正在用JSF2开发我的应用程序。无论用户是否处于活动状态,是否有一种简单的方法可以使会话在特定时间后结束?

实现一个基本上完成以下工作的会话:

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。否则最好抓取
系统#nanoTime()

谢谢你的回答。但是这给了我一个空指针异常:long start=(long)session.getAttribute(“start”);我正在使用ManageBeans对我的会话进行注释。问题是(正如我所想的)我的代码和我如何重定向。我通过检查浏览器中的地址字段找到了它,发现url不是