web-dev-qa-db-ja.com

サーブレットでのフィルターとチェーンの用途は何ですか?

chain.doFilter(req,res);
これをサーブレットプログラムで使用しました。サーブレットでのメソッドdoFilter()の使用方法を知りたいですか?また、Javaサーブレットでのフィルターおよびチェーンの概念の使用は何ですか?

26
Vinoth Kumar

サーブレットフィルターは 責任連鎖パターン の実装です

重要なのは、各フィルターがマップされている各サーブレットの「前」および「後ろ」に留まることです。したがって、サーブレットの周りにフィルターがある場合、次のようになります。

_void doFilter(..) { 
    // do stuff before servlet gets called

    // invoke the servlet, or any other filters mapped to the target servlet
    chain.doFilter(..);

    // do stuff after the servlet finishes
}
_

chain.doFilter(..)を呼び出すオプションnotもあります。この場合、サーブレットは呼び出されません。これは、セキュリティの目的で役立ちます。たとえば、ユーザーがログインしているかどうかを確認できます。

36
Bozho

フィルターとは何ですか?

Filtersは、サーブレットに送信される前に(リクエストの場合)_intercept and process requests_に使用されます。

[〜#〜]または[〜#〜]

Filtersは、サーブレットによってクライアントに送り返される前に_intercept and process a response_に使用されます。

enter image description here

なぜ使用されるのですか?

-フィルターはセキュリティチェックを実行できます。

-応答ストリームを圧縮します。

-別の応答を作成します。

doFilter()は何をしますか?

doFilter()は_every time_と呼ばれ、コンテナーがフィルターをページに適用する必要があると判断します。

_three arguments_かかります

->ServletRequest

->ServlerResponse

->FilterChain

すべての_functionality that your filter supposed to do_はdoFilter()メソッド内に実装されています。

FilterChainとは何ですか?

あなたの_filters do not know anything about the other filters and servlet_。 FilterChainは、drivenで定義した_order of the invocation of filters_によって_filter elements_およびDDを認識します。

23
Prateek Joshi

フィルタはサーブレットを補完するためにあります。使い方については、これをお読みください The Essentials of Filters 。フィルターは Chain of Responsibility GoFパターンを使用して実装されます。

12
Adeel Ansari