我正在研究 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/