gpt4 book ai didi

java - Wicket session 过期

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:50 24 4
gpt4 key购买 nike

我正在使用一个扩展 org.apache.wicket.protocol.http.WebSession 的 session 类;由于注销或超时导致此 session 到期时,我需要调用一个方法。但我一无所获。我该怎么做?

最佳答案

您可以像这样在 Wicket 级别上执行此操作:

通过覆盖 SessionStore 实现 - 覆盖 Application#newSessionStore()

 @Override
protected ISessionStore newSessionStore() {
return new SecondLevelCacheSessionStore(this, new DiskPageStore()) {

@Override
protected void onUnbind(String sessionId) {
// this code is called when wicket call httpSession.invalidate()
}

};
}

但这有缺点:当 session 过期(由 servlet 容器控制)时,不会调用此代码。换句话说 - 您只能处理由 wicket 本身引起的 session 销毁事件。

在全局级别,您可以使用 Servlet API 的 HttpSessionListener - 你可以对 session 销毁事件使用react,无论它是由什么触发的

HttpSesionListener#sessionDestroyed(HttpSessionEvent se)

并将其写入您的 WEB-INF/web.xml

<listener>
<listener-class>
your.listener.class.full.qualified.name
</listener-class>
</listener>

关于java - Wicket session 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1183992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com