2010-08-10 36 views
0

我们有一个网站,用户可以通过导航栏获得导航搜索结果。如何判断陈旧的会话与没有Java的会话

当用户离开午餐或其他任何时间,并且会话超时时,点击屏幕上仍然显示的导航中的下一个将显示下一页,但是由于它现在存储在现在陈旧的会议。这迷茫的人无止境。

我们提出的解决方案是创建一个新的会话,将用户返回到结果的开始处并向他们显示一条消息,表明他们没有会话访问我们,并且我们已经将它们发回到开始。

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

我们如何能够可靠地检测到从未参加过会议的访客/有意删除了他们的会话cookie,而不是访问者离开的时间并在会话超时后回来?

感谢

回答

0

如果你正在做的会话验证在你的代码,然后有人谁是未来直接通过链接到您的网页,不会有会话属性的请求头或任何你正在存储会话参数。如果没有完成,那么对于所有创建与服务器的会话的客户端,发送一个参数。让这个参数流过每个请求。如果有人来自陈旧的会议或根本没有任何会话,这种参数的存在将确保。

从HttpServletRequest类中检查getHeader方法。这将帮助您检查给定的标题是否存在。

+0

我们正在调查此问题。会回到你身边。谢谢 – mplungjan 2010-08-12 05:27:13

+0

我们会看看头部是否有会话ID - 如果有,它是无效的,我们会显示消息。 – mplungjan 2010-08-12 12:11:33