与Wicket的会话超时

与Wicket的会话超时,wicket,Wicket,最近维克特又给我出了一道题。在普通的web应用程序中,我们所做的只是在web中声明会话超时。xml,它对我们来说很好。但是在wicket中,在web.xml中指定会话超时不再有效。但是我的申请非常需要暂停会议。此外,我不能为每个类执行Ajax行为或Ajax计时器来检查会话超时。这就是为什么我需要一些方法来实现会话超时,以使我的程序正常工作。感谢您的帮助 我的wicket版本是6.3.0。wicket根本不管理会话持续时间。我认为您错误配置了servlet容器。试着用一个空的Wicket项目来验证

最近维克特又给我出了一道题。在普通的web应用程序中,我们所做的只是在web中声明会话超时。xml,它对我们来说很好。但是在wicket中,在web.xml中指定会话超时不再有效。但是我的申请非常需要暂停会议。此外,我不能为每个类执行Ajax行为或Ajax计时器来检查会话超时。这就是为什么我需要一些方法来实现会话超时,以使我的程序正常工作。感谢您的帮助


我的wicket版本是6.3.0。

wicket根本不管理会话持续时间。我认为您错误配置了servlet容器。试着用一个空的Wicket项目来验证我说的话

如果需要处理会话超时,可以在
应用程序
init
方法中设置处理程序:

getApplicationSettings().setPageExpiredErrorPage(MyExpiredPage.class);

更多信息。

如果您想以编程方式进行此操作

这就是我如何使用
Wicket 1.5.7
(Pax Wicket)和
servlet api
实现的。我把这段代码放在我的应用程序的基本页面类中,所有页面都在该类中扩展

int sessionTimeout = // session timeout
Request request = RequestCycle.get().getRequest();
if(request instanceof WebRequest) {
  ServletWebRequest wr = (ServletWebRequest) request;
  HttpSession session = wr.getContainerRequest().getSession();
  if(session != null) {
    session.setMaxInactiveInterval(sessionTimeout);
  }
}

从1.4(到1.5.x)开始,我使用web.xml中的会话超时和Wicket的
setMaxInactiveInterval
(用户可配置的持续时间),没有任何问题。你用的是什么版本?我的wicket版本是6.3.0