0

ここでの目標は、ボタンを持つサーブレットを作成することです。クリックすると、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

ここでいくつかのAJAXを使用することを決定しまし
た。ボタンがクリックされるxmlhttprequestと、サーブレットが起動されました。
次に、サーブレットはDate()オブジェクト値を格納するファイルを作成しました。つまり

、ページがロードされるとDate、ファイルから値を取得して画面に表示します。したがって、永続ストレージです。

于 2013-03-18T12:45:05.847 に答える
0

getServletContext() メソッドを使用してそこに格納することにより、ApplicationContext レベルで格納できます。これにより、アプリケーションレベルで時間が維持されます。

ただし、ロード バランサーを備えた複数のサーバーでアプリケーションを実行している場合は、これを実現できない可能性があることに注意してください。次に、DB ベースのソリューションを探す必要があります。それ以外の場合は、アプリケーション コンテキストに保存して、すべてのユーザーを取得できます。

doGet / doPost メソッドで、

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