Java 重写wicket中运行时的会话超时

Java 重写wicket中运行时的会话超时,java,wicket,Java,Wicket,如何在运行时覆盖会话超时间隔。基本上,在登录时,如果用户希望在特定的时间内登录,则会为其提供一个选项,例如(7) 所以,一旦用户通过身份验证,我就在会话中设置max-inactiveInterval WebRequest=(WebRequest) WebRequestCycle.get().getRequest(); request.getHttpServletRequest().getSession().setMaxInactiveInterval(小时*60) 但这似乎不起作用。用户在此时间

如何在运行时覆盖会话超时间隔。基本上,在登录时,如果用户希望在特定的时间内登录,则会为其提供一个选项,例如(7)

所以,一旦用户通过身份验证,我就在会话中设置max-inactiveInterval

WebRequest=(WebRequest) WebRequestCycle.get().getRequest(); request.getHttpServletRequest().getSession().setMaxInactiveInterval(小时*60)

但这似乎不起作用。用户在此时间之后仍然登录

谢谢


Pratik

这种方法需要几秒钟而不是几分钟,但这并不能解释这种现象


如果会话id发生更改,您可以在浏览器上的cookie中验证会话id?我遇到过这样的情况:会话处理非常“健壮”,创建了一个全新的会话,除非浏览器页面被通知会话已终止,否则它只会创建一个新的会话。现在我承认这是在我的perl时代发生的,容器管理会话不太可能发生这种情况。这种方法需要几秒钟而不是几分钟,但这并不能解释这种现象


如果会话id发生更改,您可以在浏览器上的cookie中验证会话id?我遇到过这样的情况:会话处理非常“健壮”,创建了一个全新的会话,除非浏览器页面被通知会话已终止,否则它只会创建一个新的会话。现在我承认这是在我的perl时代发生的,容器管理会话不太可能发生这种情况,我相信方法的名称本身就说明了这一点。setMaxInactiveInterval()肯定会在最后一次响应之后等待一段时间,然后才能使会话过期,因此您的会话在最后一次响应之后会保持活动7小时

至于答案,您可能正在查看页面内或会话内的某些内容,这些内容会检查预定义的时间,以查看其是否长于预定义的时间段


希望这能有所帮助。

我相信这个方法的名字会说明一切。setMaxInactiveInterval()肯定会在最后一次响应之后等待一段时间,然后才能使会话过期,因此您的会话在最后一次响应之后会保持活动7小时

至于答案,您可能正在查看页面内或会话内的某些内容,这些内容会检查预定义的时间,以查看其是否长于预定义的时间段

希望这有帮助