【问题标题】:How do I determine stale session versus no session in Java如何在 Java 中确定陈旧会话与无会话
【发布时间】:2011-03-27 17:30:35
【问题描述】:

我们有一个网站,用户可以在其中使用导航栏来导航搜索结果。

当用户出去吃午饭或其他什么,并且会话超时时,单击仍在屏幕上的导航中的下一步将显示下一页,但随后将丢失导航,因为它存储在现在已过时会议。这让人困惑不已。

我们提出的解决方案是创建一个新会话,将用户返回到结果的开头并向他们显示一条消息,即他们在没有会话的情况下访问我们,并且我们已将他们送回开头。

现在,我们收到了来自直接从外部链接访问页面的人的投诉。由于我们目前看不到过期会话和不存在会话之间的区别,因此我们将消息显示给没有(有效)会话的所有人。

我们如何可靠地检测从未进行过会话/故意删除其会话 cookie 的访问者与离开一段时间并在会话超时后回来的访问者?

谢谢

【问题讨论】:

    标签: java javascript spring jsp session


    【解决方案1】:

    如果您在代码中进行会话验证,那么直接通过指向您页面的链接的人将不会在请求标头或您存储会话参数的任何位置具有会话属性。如果这没有完成,那么对于与您的服务器创建会话的所有客户端,发送一个参数。使此参数流经每个请求。此类参数的存在将确保某人是来自陈旧的会话还是根本没有任何会话。

    检查来自 HttpServletRequest 类的 getHeader 方法。这将帮助您检查给定的标头是否存在。

    【讨论】:

    • 我们正在调查此事。会回复你的。谢谢
    • 我们将查看标头中是否有会话 id - 如果有并且无效,我们将显示消息。
    猜你喜欢
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2014-12-11
    相关资源
    最近更新 更多