1

実行中の JSF2 アプリケーションがあり、リクエスト ロギング機能を追加したいと考えています。

ロギングは db に保存され、標準のユーザー/ページ/IP トリオと他の生成されたコンテンツで構成されます。

マネージド Bean の @PostConstruct アノテーション付きメソッドで dao メソッドを呼び出すようになりましたが、これはコードの重複のようです。

@PostConstruct
public void init() {
     loggingDao.save(user,page,ip);
}

管理対象 Bean を使用して、このロギング/監査プロセスを jsf 側で集中化するにはどうすればよいですか? これは分野横断的なシナリオであるため、このコードをすべてのマネージド Bean に追加したくはありません。

EDIT 質問には、正しい方法で質問されていないことを意味する多くのコメントがありました。

最後のチャンス: 自分のサイトでのユーザー インタラクションをログに記録/監視する必要があります。それは、ログイン アクションか、項目を一覧表示するためにクリックされたボタン (バッキング Bean メソッドにマップされます)、またはページ ナビゲーション/リダイレクトのいずれかです。

また、この同じアーキテクチャを使用して、ユーザーがサイトでの特定のアクションに対する権利を持っているかどうかを判断できると想定していますが、その結果は異なるため、これは別の話です。

4

1 に答える 1

0

そのためには、サーブレット フィルターまたは JSF フェーズ リスナーのいずれかを使用できます。CSS や JavaScript リソースを含むすべてのリクエストをログに記録する場合は、フィルターを使用します。JSF リクエストだけに関心がある場合は、フェーズ リスナーを使用できます。「ビューの復元前」フェーズにフックして、必要なものをログに記録するだけです。

于 2013-04-01T10:08:52.443 に答える