2

在我的 Web 应用程序中,是基于注释的控制器(SPRING MVC)。我想在我的应用程序中实现 SessionManagement

1.) 应用程序中的任何页面都不应闲置 15 分钟

2.) 弹出窗口应在第 10 分钟打开通知类型,以通知用户 abt 会话到期,并应为他提供将会话延长至另外 15 分钟的选项,或者默认情况下应用程序应注销

我相信在 spring MVC 中必须有一个简单的方法(我使用 spring 3.1)。比如说,必须有某种方法来注释控制器或 applicationContext.xml 中的某些配置。一定有什么办法!朋友们,请帮助我提出一种方法,如果您在此处粘贴任何示例,也会有很大帮助。如果您可以逐步指导我进行此 sessionManagement 实施,也会有很大帮助。

4

1 回答 1

3

Spring MVC 在这里几乎没有什么可做的。假设您将会话超时设置为 15 分钟。只需在您网站的每个页面上放置以下 JavaScript 代码,并在页面加载后运行它:

function expireWarning() {
    if(confirm("Your session will expire in 5 minutes, extend?")) {
        $.ajax('/echo/json/');
        setTimeout(expireWarning, 10 * 60 * 1000);
    }
}

setTimeout(expireWarning, 10 * 60 * 1000);

就是这样!10 分钟后会出现弹窗。如果用户确认,AJAX 请求将被发送到服务器,自动延长会话。然后重新安排计数器在 10 分钟后询问用户。

请注意,服务器上的 AJAX 目标不必执行任何操作。此调用的唯一目的是告诉容器用户仍在使用此会话令牌。

另一个提示:如果您的站点已经在使用 AJAX,您必须在每次调用后重新安排超时,因为每次 AJAX 调用也会扩展会话。如果用户停留在站点上并触发大量 AJAX 调用,则会话会自动一次又一次地扩展。

于 2012-01-11T18:51:15.140 回答