フィルタは、関連付けられたサーブレットまたは JSP ページの前にサーバー上で実行されるプログラムです。フィルタは 1 つ以上のサーブレットまたは JSP ページに添付でき、これらのリソースに入るリクエスト情報を検査できます。
この後、フィルターは次の選択を行うことができます:
① 従来の方法でリソースを呼び出します (つまり、サーブレットまたは JSP ページを呼び出します)。
②変更したリクエスト情報を使用してリソースを呼び出します。
③リソースを呼び出しますが、クライアントに応答を送信する前にリソースを変更します。
④リソース呼び出しをブロックし、代わりに他のリソースに移動し、特定のステータス コードを返すか、置換出力を生成します。
フィルターの仕組み
サーブレットをフィルターとして使用すると、顧客のリクエストを処理できます。処理が完了すると、次のフィルタに引き渡されて処理が行われるため、顧客のリクエストはターゲットに送信されるまでフィルタリング チェーン内で 1 つずつ処理されます。たとえば、Web サイトに「変更された登録情報」を送信するための Web ページがあり、ユーザーが変更された情報を入力して送信した後、サーバーは処理中に 2 つのタスク、つまりクライアントのセッションが有効であるかどうかを判断する必要があります。入稿データのコーディングを統一します。どちらのタスクも、2 つのフィルターで構成されるフィルター チェーンで処理できます。フィルタ処理が成功すると、送信されたデータは最終ターゲットに送信され、フィルタ処理が失敗すると、ビューは指定されたエラー ページにディスパッチされます。
フィルターのライフ サイクル
1 |
|
私たちが作成したサーブレット プログラムと同様に、フィルターの作成と破棄は WEB サーバーの責任です。 Web アプリケーションが開始されると、Web サーバーは Filter のインスタンス オブジェクトを作成し、その init メソッドを呼び出し、web.xml 構成を読み取り、オブジェクトの初期化関数を完了します。これにより、後続のユーザー要求 (フィルター オブジェクト) のインターセプトの準備が整います。は一度だけ作成され、init メソッドは一度だけ実行されます)。開発者は、init メソッドのパラメーターを通じて、現在のフィルター構成情報を表す FilterConfig オブジェクトを取得できます。
1 |
|
このメソッドにより、実際のフィルタリング操作が完了します。クライアントがフィルタに関連付けられた URL へのアクセスを要求すると、サーブレット フィルタは最初に doFilter メソッドを実行します。 FilterChain パラメーターは、後続のフィルターにアクセスするために使用されます。
1 |
|
Filter オブジェクトは作成後にメモリ内に常駐し、Web アプリケーションが削除されるかサーバーが停止されると破棄されます。 Web コンテナが Filter オブジェクトをアンロードする前に呼び出されます。このメソッドは、フィルターのライフサイクルで 1 回だけ実行されます。この方法では、フィルタが使用していたリソースを解放することができます。
推奨チュートリアル:「java チュートリアル」
以上がフィルターとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。