0

这里的目标是拥有一个带有按钮的 servlet,当单击时会Date()在会话内存之外创建一个持久对象,即可以在关闭浏览器并访问页面后检索变量值。
想知道这里最好的方法是什么?
我考虑过数据库或写入文件。

希望在屏幕上有一个标签和按钮,当单击按钮时,它会在服务器上创建一个时间戳,标签包含自单击按钮以来的“经过的时间”。
本质上是一个持续时间,但相同的值对所有用户/会话都是可见的。
一旦#timeStarted被请求加载,就会有一些javascript来更新持续时间setInterval(),这部分没有问题。

"<label id=\"timeStarted\"> + getTimeStarted() + "</label>"

<form method="post" action="SomeServlet">  
    <input type="submit" value="Go"/>  
</form>

SomeServlet声明变量/持久对象时:

Date timeStarted = new Date();
4

2 回答 2

0

您可以使用 getServletContext() 方法将其存储在 ApplicationContext 级别并将其存储在那里。这将使时间保持在应用程序级别。

但请记住,如果您在具有负载平衡器的多台服务器上运行应用程序,您可能无法实现这一点。然后你必须寻找基于数据库的解决方案。否则,您可以将其存储在应用程序上下文中并为所有用户检索。

在您的 doGet / doPost 方法中,

ServletContext context = request.getServletContext();
context.setAttribute("clicktime", new Timestamp(System.currentTimeMillis()));
于 2013-01-08T17:14:25.950 回答
0

决定在这里使用一些 AJAX,
一旦单击按钮,它就会触发xmlhttprequest一个 servlet。
servlet 然后创建一个存储Date()对象值的文件,即 long

当页面加载时,它Date从文件中检索值并显示在屏幕上.. 从而持久存储。

于 2013-03-18T12:45:05.847 回答