2011-10-18 21 views
4

問題:すべてのWebアプリケーションに対してフィルタを実行したい。すべてのWebアプリケーション用のtomcatフィルタ

私はapache tomcatサーバーへのリクエストを監視するフィルタを作成しました。

例として、MyFilterと呼ばれています。私は2つの区切られたディレクトリを作成したのNetBeans、それを作成します。同じで

​​

を私は、NetBeansからそれを実行したときに、私は/ myFilterを/下のページを表示するたびに、それを展開し、http://localhost:8080/MyFilter

に私を送りますsomepath - フィルタを実行します。

私は、フィルタがすべてのパスで実行したい、とだけでなく、私はプロジェクトのファイルを検索する必要がないWebアプリケーション

のため?どのプロジェクトファイルが必要ですか? conf/web.xmlを編集してフィルタを追加する必要がありますか?または私は特定のwebappのweb.xmlにのみ存在する必要がありますか?

編集:私はTomcatを起動するとき、それは私が追加ディレクトリ(Tomcatの/ Webアプリケーション/ myFilterを/)

を作成

iはTomcatの/ Webアプリケーション

に生成された.warファイルをコピーフィルタをtomcat/conf/web.xmlに追加します。私はそれを起動したとき、それはロードに失敗:// localhostを:8080 /しかし、正常にロード(およびフィルタ):// localhostを:8080/myFilterを

+3

[グローバルJavaサーブレットフィルタは可能ですか?](http://stackoverflow.com/questions/7630268/global-java-servlet-filter-is-it-possible) – BalusC

+0

@BalusC、私の知っているバルブの、しかしそれはフィルタで行うことができますか? – lolo

+0

はい。おそらく、Tomcatの 'web.xml'にフィルタのURLパターンを修正するだけでいいのでしょうか? – BalusC

答えて

9

フィルタが定義によっては今までのWebアプリケーション内で実行されます、それ

デフォルトでは、Tomcatのconf/ディレクトリにあるweb.xmlディレクトリに定義して、そのTomcatにデプロイされているすべてのWebアプリケーションに含めることができます(ただし、フィルタクラスを使用できるようにする必要がありますおそらくTomcatのlib/ディレクトリに置いてください)。

Tomcat Valveは、概念的にはフィルタに似ていますが、Tomcatのエンジン、ホスト、コンテキストにインストールすることもできます。

+0

に解凍しますが、私の場合はフィルタを使用して実装しています。私はそれをweb.xmlに追加し、Apacheの起動時に読み込みますが、それでも/ MyFilterパスに対してのみfilterコマンドを実行するようです。私はwebapps /ディレクトリbtwに/ web/*ビルドを配置しました。私は何が欠けていますか? – lolo

+0

** ** ** web.xmlに追加しましたか?あなたのWebアプリケーションの1つですか?あるいは、Tomcatインストールの 'conf /'ディレクトリにあるものに? –

+0

私は問題がconf/web.xmlにあると思います。何とかフィルタークラスの別のパスを指定する必要があります – lolo

関連する問題