2013-01-16 50 views
0

我有一个JSP页面,它接受来自用户的输入,当用户按下SAVE时,数据会传送到服务器以及用于验证用户的JSESSION ID。JSessionID休息10分钟后进入休息期。如何在JSP页面中跟踪时间

现在,它可能会发生用户按下保存按钮后,10 min.In这种情况下,JSESSIONID将到期,服务器将抛出一个异常,这将是visibe用户

我想是火虚每隔9分钟查询一次服务器,以便Jsessionid不会过期。现在,我如何在JSP页面中保留时间的轨迹。

+0

有计时器吗?为什么不让您的会话ID超时值更长?工作*周围*会话超时似乎有点奇怪;你有没有把它设置为相对较低的10分钟*原因*?当他们的会话超时而不是向他们展示一个异常时,做一些合理的事情会怎样? –

+0

@DaveNewton,一个区别是,如果浏览器窗口关闭,会话将在十分钟后过期,而不是较长的时间段。 –

+0

@SamuelEdwinWard很明显。 –

回答

1

您可以使用JavaScript在超时后向服务器发出AJAX调用。

举例来说,假设你使用jQuery:

window.setInterval(
    function() { $.get('ping.jsp'); }, 
    9*60*1000); 

文档:

如果你不使用jQuery,你”必须用浏览器特别代替$.get电话来自另一个库的fic代码或代码。

或者,您可以使用Meta refreshRefresh标题,但正如该文章中所述,有许多不好的理由。然而,在一个看不见的iframe它可能不是那么糟糕。我仍然会自己使用JavaScript版本。

+0

ok..What如果我想调用一个servlet说“myservlet”(这个servlet激发虚拟查询)并且还传递一些存储在变量“sessid”中的数据......我如何使用它你的sufggestion.Also如果我想使用Jquery,将复制粘贴你的代码将工作,或者我需要写或包含其他东西 – Sankalp

+0

@Sankalp,你将不得不用'ping.jsp'替换你的servlet的路径。如果你点击jQuery.get文档的链接,它将解释如何传递数据。您还需要包含其他内容。 –