java.lang.Object
com.sun.net.httpserver.Filter
public abstract class Filter extends Object
着信要求の事前処理および事後処理に使用されるフィルタです。 事前処理はアプリケーションの交換ハンドラが呼び出される前に行われ、事後処理は交換ハンドラが返されたあとに行われます。 フィルタはチェーン内で編成され、HttpContextインスタンスと関連付けられます。
チェーン内の各フィルタは、それぞれ独自のdoFilter()実装内で次のフィルタを呼び出します。 チェーン内の最後のフィルタは、アプリケーション交換ハンドラを呼び出します。
- 導入されたバージョン:
- 1.6
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
Filter.Chain
HttpServerに関連付けられたフィルタのチェーンです。 -
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
Filter()
-
メソッドのサマリー
修飾子と型 メソッド 説明 abstract String
description()
このフィルタの短い記述を返します。abstract void
doFilter(HttpExchange exchange, Filter.Chain chain)
このフィルタに対し、指定された交換の事前処理または事後処理を要求します。
-
コンストラクタの詳細
-
Filter
protected Filter()
-
-
メソッドの詳細
-
doFilter
public abstract void doFilter(HttpExchange exchange, Filter.Chain chain) throws IOExceptionこのフィルタに対し、指定された交換の事前処理または事後処理を要求します。 フィルタは次のことができます:- 要求ヘッダーを検査または変更する
- 適切なフィルタ・ストリームを作成し、
HttpExchange.setStreams(InputStream,OutputStream)
を呼び出すことで、要求本体または応答本体にフィルタを適用する - 交換に、ほかのフィルタまたは交換ハンドラがアクセスできる属性Objectsを設定する。
- いずれかに決定
Filter.Chain.doFilter(HttpExchange)
を呼び出すことで、チェーン内の次のフィルタを呼び出すFilter.Chain.doFilter(HttpExchange)
を呼び出さないことで、呼出しのチェーンを終了する
- 上記のオプション1. の場合、doFilter()が返されるとき、チェーン内のすべての後続のフィルタが呼出し済みであり、応答ヘッダーを検査および変更することができる
- 上記のオプション2. の場合、このフィルタは、HttpExchangeを使用して適切な応答を送り返す必要がある
- パラメータ:
exchange
- フィルタ処理されるHttpExchange
。chain
- 次のフィルタで呼出し可能なチェーン。- 例外:
IOException
- どのフィルタ・モジュールでもスローされる可能性があり、キャッチされた場合、再度スローする必要がある。NullPointerException
- 交換とチェーンのいずれかがnull
の場合
-
description
public abstract String description()このフィルタの短い記述を返します。- 戻り値:
- フィルタを記述した文字列
-