フィルタが処理される順序は、web.xmlで宣言されている順序で決定できます。GlassFishでフィルタマッピングの順序を指定する方法は?
@ webServlet注釈などを使用してweb.xmlなしでこれを行う方法はありますか? web.xmlを乱雑にしたくない
フィルタが処理される順序は、web.xmlで宣言されている順序で決定できます。GlassFishでフィルタマッピングの順序を指定する方法は?
@ webServlet注釈などを使用してweb.xmlなしでこれを行う方法はありますか? web.xmlを乱雑にしたくない
注釈付きフィルタでは不可能なようです。 Servlet 3.0 Specificationは言う:
上述したように、リスナー、サーブレットとフィルタを定義するために 注釈を使用する場合、それらは 呼び出される順序が指定されていません。
@axtavtはメモとしては使用できません。ここに彼らがそれをそのように設計した理由があります。
順序を指定するには、(何らかの形で)チェーン内の位置を指定する余分な引数が必要です。例えばオーダー'。これで問題があります。
サーブレットが、その後プログラマ/デプロイヤは何かを動作するようにフィルタクラスのすべての注釈を検討する必要があり、そのための注釈パラメータで指定されたフィルタの数を持っている場合実際の注文はです。
理論的には、複数のサーブレット、複数のWebアプリケーションでも、特定のフィルタクラスを使用できます。各サーブレットまたはWebアプリケーションは、フィルタの順序を異ならせたい場合があります。フィルタクラスのアノテーションを使用するだけでは、これを達成することはできません。
フィルタの順序を変更する必要があるWebアプリケーションを配備するユーザーは、ソースコードを変更して、WARファイルを再コンパイルして再構築する必要があります。
私は、設計者がこれらの問題を見て、フィルタの順序を指定する最高場所はweb.xmlファイルであると判断した想像してみてください。
基本的に、理論上誰かが複数のWebアプリケーションでフィルタを使用する可能性があるので...そして他の理由は "面倒ですが"のようです。それでも私はあなたが理由を理由づけようとするのが好きです。 – rapadura
これは 'loadOnStartupOrder'属性によって制御できませんか? – musiKk