2

基本的にJava側でサーバーコールを監視したい。リクエストが受信されたときにタイムスタンプを直接取得する方法はありますか。

つまり、明示的に Date オブジェクトを作成してタイムスタンプを調べたくありません。むしろ、Request Object で提供されるタイムスタンプ パラメータ ユーティリティがあるかどうかに興味があります。

ServletActionContext.getRequest() によって提供されるもの、または Date() オブジェクトを作成して見つけるためのコードを作成する必要のない利用可能なソリューション。

私が言っている理由は、約 50 ~ 60 のサーバー呼び出しがあり、アプリケーションで将来さらに増える可能性があるため、アプリケーション層でコードが必要になるたびに、この既製の機能を使用するのではなく.

4

1 に答える 1

5

HttpServletRequest.getDateHeaderは、タイムスタンプをlong値として提供します。

これは受信時間ではなくリクエストヘッダーからのものですが、エポックからのミリ秒を提供するため、機能する可能性があります。

Filterを調べることもできます。これにより、次のことが可能になります。

この設計で確認されている例は次のとおり
です。 1. 認証フィルター
2.ログと監査フィルター
...

イベント リスナーは、サーブレットの処理にフックできる別の機能である可能性があります。

質問に戻る:

ServletActionContext.getRequest() -> HttpServletRequest.getSession() -> HttpSession.getLastAccessedTime

クライアントがこのセッションに関連付けられたリクエストを最後に送信した時刻を、1970 年 1 月 1 日 GMT の午前 0 時からのミリ秒数として返し、コンテナがリクエストを受信した時刻によってマークされます。

于 2013-01-16T12:49:24.307 に答える