1

最近 Wicket 让我遇到了另一个 Session 问题。在普通的 web 应用程序中,我们所做的只是简单地在 web.xml 中声明 session-timeout。xml,它对我们来说很好。但是在 web.xml 中指定会话超时的检票口不再起作用。但是我非常需要我的应用程序的会话超时。此外,我不能为每个班级实施 Ajax Behavior 或 Ajax Timer 来检查会话超时。这就是为什么我需要一些时间来实现会话超时以使我的程序正常工作。任何帮助表示赞赏。

我的检票口版本是 6.3.0。

4

3 回答 3

1

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

getApplicationSettings().setPageExpiredErrorPage(MyExpiredPage.class);

更多信息在这里

于 2013-04-29T04:43:28.540 回答
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);
  }
}
于 2013-05-03T02:34:02.637 回答
1

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

于 2013-04-28T20:14:10.540 回答