会议超时与Wicket

时间:2013-04-28 19:10:13

标签: wicket

最近Wicket让我遇到了Session的另一个问题。在普通的Web应用程序中,我们所做的只是在web中声明session-timeout。 xml,它对我们来说很好。但是在wicket中指定web.xml中的会话超时不再有效。但是我的应用程序需要会话超时。此外,我无法为每个类实现Ajax行为或Ajax Timer来检查会话超时。这就是为什么我需要一些时间来实现会话超时以使我的程序工作。任何帮助表示赞赏。

我的wicket版本是6.3.0。

3 个答案:

答案 0 :(得分:1)

Wicket根本不管理会话持续时间。我认为你错误配置了你的servlet容器。尝试使用空的Wicket项目来验证我说的内容。

答案 1 :(得分:1)

如果您需要处理会话超时,可以使用Application init方法设置处理程序:

getApplicationSettings().setPageExpiredErrorPage(MyExpiredPage.class);

更多信息here

答案 2 :(得分:1)

好吧,如果你想以编程方式进行...

这是我使用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);
  }
}