gpt4 book ai didi

session - 如何使 Wicket session 无效

转载 作者:行者123 更新时间:2023-12-04 04:50:45 24 4
gpt4 key购买 nike

我有一个 Wicket (6.9.0) 应用程序,它在几个页面上接受用户输入,处理数据,最后显示一个页面,提供输入摘要。应用程序在 session 中存储了一些数据,所以我想最后使其无效,以便用户无法返回继续使用陈旧的 session 数据。

我尝试在我的摘要页面中使用 session.invalidate(),首先在构造函数中,然后在 onAfterRender() 中,但两次我最终都看到了“页面已过期”页面,而不是我的摘要页面的输出。

有没有办法显示我的摘要页面然后使我的 session 无效?或者这是不应该在 Wicket 中完成的事情?

最佳答案

“页面过期”问题是由框架的渲染策略引起的。默认情况下,Wicket 使用后重定向策略来呈现页面。因此,如果 session 在页面中的某处失效,则以下 get-request 将始终显示“页面已过期”消息,因为 session 不再存在。

简单的解决方法是在Application init方法中改变渲染策略:

@Override
protected void init() {
super.init();
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
}

此解决方案的缺点是,当用户按下浏览器上的刷新按钮时,它会遇到“双重提交问题”。

关于session - 如何使 Wicket session 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17474300/

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