Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 设置用户可以登录的最长时间,无论其活动如何_Session_Jsf 2_Time_Max - Fatal编程技术网

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不是