2011-10-04 11 views
3

私は、http要求と応答時間を測定するサーブレットフィルタを作成しています。サーブレットフィルタ - 呼び出されたサーブレット/ JSPの識別

フィルタはApache Tomcat 7 Webサーバーにデプロイされます。

リクエストのURIの解析以外の各リクエストでどのサーブレットまたはJSPが呼び出されているかを特定する方法があるかどうかは疑問でした(たとえば、.jspサフィックスを確認するなど)。

答えて

4

サーブレット/ JSPを変更せずに、FilterChain#doFilter()呼び出しの後に取得する特定の要求属性を設定します。

HttpServletRequest#getServletPath()は、実際にリクエストされたリソースを取得するためには、おそらくより良い方法であるというヒントしか与えられません。これはコンテキストに依存しない方法で行います。したがって、getRequestURI()を使ってコンテキストパスをトリミングする必要はありません。また、例えば/foo/*にマップされているサーブレットがある場合、/foo/bar/bazではなく/fooが返されます。あなたが興味を持っている場合に備えて。

Tomcatを使用しているので、組み込みのAccess Log Valveに興味があるかもしれません。よく知られているApache HTTPDと同じように、時間を含めて要求をログに記録する方法を提供します。これはもちろん、Tomcatのインスタンスに対する完全な管理権限を持っている場合にのみ重要です。

関連する問題