私は多くのWebアプリケーションで一般的に有用と思われるフィルターを作成しました。私はそれを配布して使用できるようにライブラリ(jarファイルとしてパッケージ化)に入れたいと思います。しかし、私はライブラリのユーザーにそれを使うよう強制したくありません(それはその中のすばらしいものの一つです)。現時点でJava EE6フィルタを注釈とともに定義できますが、web.xmlに適用できますか?
、フィルタは次のようになります。
public class WonderfulFilter implements Filter {
それを適用することを意味し、ユーザーが自分のweb.xmlに以下を追加する必要があります。勇敢で
<filter>
<filter-name>WonderfulFilter</filter-name>
<filter-class>org.example.WonderfulFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WonderfulFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
を新しいEE6の世界では、これは不合理なようです。
私はこのようなフィルタを定義する場合:
@WebFilter("/*")
public class WonderfulFilter implements Filter {
その後何の設定がフィルタを適用する必要はありません。しかし、また、へのオプションはありませんフィルタを適用します。
私は何ができますか?暗黙的にURLパターン(および他のプロパティ)を定義するためにフィルタに注釈を付ける方法はありますか? web.xmlで簡単にフィルタを無効にする方法はありますか?
は(ソートのウェブ-fragment.xmlを含むソリューションがあるかもしれません。それになります...)
これを特定のサーバーで実行されているすべてのアプリに適用しますか?またはあなたのフィルタを含むjarファイルを使用しているものだけに? – havexz
個人的に私はここで注釈を使用しません。ユーザが設定することはできません(特定のパターンにフィルタを適用したい場合はどうすればよいでしょうか?)。そして、ライブラリを含めば、暗黙のうちにすべてのリクエストを突然フィルタリングするだけです。これで、アノテーションの動作をいくつかのプロパティファイルに基づいて変更して、必要な動作を得ることができましたが、最初に 'web.xml'を使用する違いは何ですか? – Voo
@havexz:明示的に有効にしたjar *と*を使ってすべてのアプリケーションに適用したいと思います。 –