Java 如何使用警报框使会话超时

Java 如何使用警报框使会话超时,java,javascript,jquery,spring-security,Java,Javascript,Jquery,Spring Security,我正在应用程序中使用SpringSecurity和java。当会话过期时,我需要显示会话结束的警报。该框应该有一个ok按钮,单击该按钮时,我想重定向到登录页面。我应该在哪里放置max time out并在超时后显示警报消息。假设会话超时计时器在加载新页面后重置,您可以简单地使用JavaScript超时: setTimeout(function() { if(confirm('session timeout')) location.href = 'login.html';

我正在应用程序中使用SpringSecurity和java。当会话过期时,我需要显示会话结束的警报。该框应该有一个ok按钮,单击该按钮时,我想重定向到登录页面。我应该在哪里放置max time out并在超时后显示警报消息。

假设会话超时计时器在加载新页面后重置,您可以简单地使用JavaScript超时:

setTimeout(function() {
    if(confirm('session timeout'))
        location.href = 'login.html';
}, 15 * 60 * 1000); // 15 minutes, alter appropriately

一旦您导航到另一个页面,所有当前JavaScript都将被丢弃,因此超时将被重置。

假设会话超时计时器在加载新页面后被重置,您只需使用JavaScript超时:

setTimeout(function() {
    if(confirm('session timeout'))
        location.href = 'login.html';
}, 15 * 60 * 1000); // 15 minutes, alter appropriately

一旦您导航到另一个页面,所有当前JavaScript都将被丢弃,因此超时将被重置。

如果是启用ajax的网站,请检查每个ajax请求的auth/session,在请求中返回statuscode或类似内容,并在客户端进行检查。如果状态代码401,则显示警报


老实说,我不认为需要一个定时器在空闲时间后触发它。

如果它是一个支持ajax的网站,请在每个ajax请求上检查auth/session,在请求上返回statuscode或类似内容,然后在客户端检查它。如果状态代码401,则显示警报


老实说,我不认为有必要在空闲时间后使用计时器来触发它。

如果在这段时间之间我发出了一些ajax请求,会怎么样?更糟糕的是,如果我打开另一个选项卡(同一浏览器)并使用该选项卡中的应用程序,在这种情况下,我将从上一个选项卡注销,即使我正在从另一个选项卡ping服务器time@anu:你完全正确-这是一个极其微不足道的例子。相反,您可以通过将当前时间存储到
localStorage
中,在每次onload/ajax请求/etc时重置,并使所有页面在
localStorage
条目更改后立即重置其超时。它可能很脏,但应该跨页面工作。是的。实际上我正在使用这种东西,但我没有将页面转发到login.html,而是刷新当前页面,这样,如果会话在服务器端无效,您将自动登录out@Anu谢谢你的建议。但我们必须在超时后显示警报框。如果我在这段时间内发出一些ajax请求呢?更糟糕的是,如果我打开另一个选项卡(同一浏览器)并使用该选项卡中的应用程序,在这种情况下,我将从上一个选项卡注销,即使我正在从另一个选项卡ping服务器time@anu:你完全正确-这是一个极其微不足道的例子。相反,您可以通过将当前时间存储到
localStorage
中,在每次onload/ajax请求/etc时重置,并使所有页面在
localStorage
条目更改后立即重置其超时。它可能很脏,但应该跨页面工作。是的。实际上我正在使用这种东西,但我没有将页面转发到login.html,而是刷新当前页面,这样,如果会话在服务器端无效,您将自动登录out@Anu谢谢你的建议。但我们必须在超时后显示警报框。