Spring 3.1 MVC框架 session 管理

标签 spring spring-mvc session-management

在我的网络应用程序中,是基于注释的 Controller (SPRING MVC)。我想在我的应用程序中实现 SessionManagement

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

2.) 应在第 10 分钟打开弹出窗口(类似通知),以通知用户 abt session 到期,并应为他提供将 session 延长到另外 15 分钟的选项,或者默认情况下应用程序应记录-关闭

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

最佳答案

Spring MVC 在这里几乎没有什么用处。假设您将 session 超时设置为 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请求将发送到服务器,自动延长 session 。然后,计数器会重新安排时间,在 10 分钟后询问用户。

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

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

关于Spring 3.1 MVC框架 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824790/

相关文章:

spring - 部署为 WAR 时无法使用 Spring Boot WebFlux 解决 View 异常

java - Tomcat 问题 :The last packet successfully received from the server was 66, 913,221 毫秒前。

java - 仅更改 application.property spring 中的一个属性

json - 如何有效地同时支持 JSR-303 验证和 Jackson JSON 映射?

java - 我们可以在简单的网站 cPanel 中部署 .war 文件吗?

java - Servlet 中的 session ID 管理

spring - 如何在Kotlin类中注入(inject)JOOQ的DSLcontext

java - ${pageContext.request.contextPath} 如何在本地和远程工作?

java - 测量 Web 应用程序 session 资源消耗