このテンプレートを使用すると、簡単なフィルタクラスをデザインできます。
フィルタは javax.servlet.Filter を実装し、その 3 つのメソッドを定義します:
- void setFilterConfig(FilterConfig config): フィルタの構成オブジェクトを設定します
- FilterConfig getFilterConfig(): フィルタの構成オブジェクトを戻します
- void doFilter(ServletRequest req, ServletResponse res, FilterChain chain): 実際のフィルタリング作業を行います
サーバーは、setFilterConfig() を 1 回呼び出して、フィルタがサービスするための準備を行い、
次に doFilter() をさまざまな要求に応じた回数呼び出します。
FilterConfig インタフェースにはフィルタ名、初期パラメータおよびアクティブなサーブレットコンテキストを検出するメソッドがあります。
各フィルタは、まだ処理する必要のあるフィルタを含む FilterChain と同様、その doFilter() メソッド中に、
現在の要求および応答オブジェクトを受け取ります。
doFilter() メソッド内で、フィルタは要求および応答オブジェクトに必要なことを行う場合があります
(doBeforeProcessing メソッドを参照してください)。次にフィルタは chain.doFilter() を呼び出し、次のフィルタへ制御を移します。
その呼び出しが戻ると、フィルタは、自身の doFilter() メソッドで、さらに要求/応答オブジェクト (doAfterProcessing メソッドを参照) への
作業を実行します。
このテンプレートに実装する必要のある最も重要なメソッドは、次の通りです :
- private void doBeforeProcessing(ServletRequest req, ServletResponse res): フィルタチェーンの残りが呼び出される前に要求および/または
応答を処理するためにここにコードを記述します。
- private void doAfterProcessing(ServletRequest req, ServletResponse res: フィルタチェーンの残りが呼び出された後に要求および/または
応答を処理するためにここにコードを記述します。