【问题标题】:How to handle session timeout with wicket ajax requests?如何使用 wicket ajax 请求处理会话超时?
【发布时间】:2011-04-17 16:43:31
【问题描述】:

使用 wicket 执行 ajax 请求时如何处理会话超时?

当前(例如,使用 AbstractAjaxTimerBehavior)用户被重定向到会话过期页面。我想使用 javascript 在客户端处理这个问题(以获得更好的用户体验)。

如果服务器端发生另一个错误或服务器根本没有响应,则覆盖 onException(什么都不做)和 getFailureScript 可以正常工作。但如果服务器响应并且用户的 wicket 会话已过期,则不会。

非常感谢任何建议,非常感谢。

彼得

【问题讨论】:

    标签: java ajax wicket session-timeout


    【解决方案1】:

    我为此找到了一个丑陋的解决方法,检票口开发人员显然没有看到在客户端处理 ajax 会话到期的需求。

    在此处查看解决方案: https://issues.apache.org/jira/browse/WICKET-3081

    【讨论】:

    • 是的,这就是我所能想到的,恐怕。您唯一能做的就是首先防止超时,因为我的页面上有一个组件会定期自我更新(但这有点难看)。
    【解决方案2】:

    当您的页面不可加入书签并且您向服务器请求页面但服务器具有您请求的页面的不同版本时,通常会出现会话过期页面。它应该与 web.xml 文件中定义的会话超时无关。

    作为一种好的做法,您的页面应该有一个带有 PageParameters 的构造函数。还要小心弹出页面,因为它们在不使用 PageParameters 时通常会产生这类错误。

    【讨论】:

    • 我们有 PageParameters 和所有这些东西。但是如果有任何组件取决于页面状态,例如ajax组件,当会话超时后ajax请求发出时,用户将被重定向到SessionExpiredPage。
    • 检查您的 web.xml 中的会话超时配置
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 2010-11-03
    • 1970-01-01
    • 2013-11-05
    • 2012-06-27
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多