我需要在用户处于非活动状态一段时间后自动结束会话,比如10分钟.我们有一个方法
HttpSession session=request.getSession();
session.setAttribute("User", au);
session.setAttribute("name", firstname);
response.sendRedirect("doLogin.jsp");
session.setMaxInterval();
Run Code Online (Sandbox Code Playgroud)
但即使用户活动了10分钟,这也将结束会话.如何在用户关闭浏览器时结束会话?
Sur*_*tta 13
避免使用手动代码.
只是在 web.xml //this will applied for whole application
<session-config>
<session-timeout>10</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
检测浏览器关闭事件并调用invalidate方法
if(session!=null) {
session.invalidate();
}
Run Code Online (Sandbox Code Playgroud)
您可以在ServletContextListener中将会话超时设置如下:
session.setMaxInactiveInterval(15*60); //in seconds
Run Code Online (Sandbox Code Playgroud)
这将为您提供以下优势:您可以从任何外部属性文件/数据库读取会话超时,并在不更改代码的情况下更改会话超时.
您可以使用该unload事件并将注销请求发送到服务器.或者继续向服务器发送定期请求,通知用户仍处于活动状态.
| 归档时间: |
|
| 查看次数: |
38371 次 |
| 最近记录: |