java - 当用户确认保持在线时刷新 session 时间

标签 java jsf servlets jakarta-ee jsf-2

我正在研究 JSF 框架。在 Web.xml 中, session 超时时间为 5 分钟。 4 分钟后,我将向用户显示是否保持 Activity 状态的确认对话框。单击"is"后,我尝试了 sessionObject.setMaxInactiveInterval(5)。但 session 在第 5 分钟后失效。有没有一种方法可以动态延长用户 session 时间而不更改 web.xml 中的时间。

public void refreshSession(){
        //code to refresh the session
        System.out.println("want to stay alive");
        HttpSession currentSession = ServerUtility.getSession();
        currentSession.setMaxInactiveInterval(2*60);
    }

最佳答案

Web.xml设置的超时设置是全局的,它适用于整个应用程序。
但如果你想延长 session 时间,你需要创建包含以下代码的方法:

HttpSession session = request.getSession();
session.setMaxInactiveInterval(5*60);


您可以做的是创建一个执行上述代码的端点

public void extendSession(){
HttpSession session = request.getSession();
session.setMaxInactiveInterval(5*60);
}

如果用户不想继续,则以下代码将立即结束 session :

session.setMaxInactiveInterval(0); // inactive immediately

关于java - 当用户确认保持在线时刷新 session 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605137/

相关文章:

java - unlock() 从未被调用,但使用了 try..finally

javascript - 如何防止在 Java 自动化 Selenium 测试期间执行特定的 <script> 标记?

java - java中的函数多次调用时输出不同的结果

java - 接收从适配器到 Fragment 的回调

javascript - :selectoneradio not selected item in Javascript

java - 如何在 jsp 文件中编写的 servlet 代码中应用 css 文件?

java - 将 vector 图像添加到 Google Maps Android API v2

jsf - @SessionScoped 是一个好习惯吗?

java - 在哪里可以找到 JSFUnit 实际示例?

tomcat - Spring 启动 : Deploy WAR on Tomcat 7