2011-02-10 11 views
2

URLにクエリパラメータがあるかどうかにかかわらず、HTMLページのリクエストを選択するフィルタを作成しようとしています。 URLパターンが「で終わるページの要求に合致することをクエリパラメータを持つURLを含むすべての.html URLのURLマッピング

<filter-mapping> 
    <filter-name>statTrackingFilter</filter-name> 
    <url-pattern>*.html</url-pattern> 
</filter-mapping> 

:(このフィルタの目的は、訪問者の行動/統計情報を追跡することがある)

これは私が私のweb.xmlに持ってフィルタマッピングです。 html "ですが、クエリパラメータでリクエストを取得したいと思います。

私は、次の設定を試してみたが、それは今までにすべての要求と一致していません:

<filter-mapping> 
    <filter-name>statTrackingFilter</filter-name> 
    <url-pattern>*.html*</url-pattern> 
</filter-mapping> 

にはどうすれば任意のHTMLページへのすべての要求をキャプチャするために、私のフィルタを設定することができますか?

これは間違った方法ですか?フィルタですべてのリクエストをリッスンし、リクエストされたURLが重要かどうかをフィルタに伝える必要がありますか? CSS、JS、イメージリクエストをすべて無視したい。

ありがとうございます。

編集:<url-pattern>*.html</url-pattern>が実際に機能していました。 log4jのしきい値が高すぎるため、フィルタのログが無視されていたとは思えませんでした。

答えて

3

*.html*パターンは、文字通り ".html *"という拡張子を持つファイルにのみ一致するため、機能しません。 linkから

URLパターンは非常に単純な構文を使用します。パターン内のすべての文字は、2つの例外を除いて、URLパス内の対応する文字と正確に一致する必要があります。パターンの終わりに、/ *はその点からの文字列を前方に一致させます。パターン* .extensionは、拡張子で終わる任意のファイル名と一致します。他のワイルドカードはサポートされておらず、パターンの他の位置にあるアスタリスクはワイルドカードではありません。

<url-pattern>*.html</url-pattern>を使用した最初の設定は正しいと思いますが、最後にクエリパラメータを使用してリクエストを取得する必要があります。

+0

あなたは正しいですが、 '* .html'パターンは本当に正しいものであり、私が探していたものすべてを拾いました。ログのしきい値が高すぎるため、リクエストが不足していると思っていました。フィルタが動作しているかどうかを確認するためにログからログを探していましたが、マスクされていました。 D'oh! – ampersandre

関連する問題