フィルタとサーブレットの違い

フィルタとサーブレットの比較

主に次の4つの側面からそれらの違いを紹介し
                ます。1。コンセプト。
                2.ライフサイクル。
                3.責任。

                4.実行プロセス。

 

    1.概念:
 
         1。サーブレット:サーブレットは、サーバー側で実行されるJavaアプリケーションです。プラットフォームやプロトコルに依存しないという特徴があり、Webページを動的に生成できます。クライアント要求とサーバー応答の中間層で機能します。
 
         2.フィルター:フィルターは、HTTP要求、応答、およびヘッダー情報を変換するために使用できる再利用可能なコードフラグメントです。サーブレットとは異なり、フィルターは要求または応答を生成できません。特定のリソースに対する要求を変更するか、特定のリソースからの応答を変更するだけです。


       2.ライフサイクル:
 
        1。サーブレット:サーブレットのライフサイクルは、Webサーバーのメモリにロードされたときに始まり、Webサーバーがサーブレットを終了または再ロードしたときに終了します。サーブレットがWebサーバーにロードされると、通常、Webサーバーがシャットダウンされるか、再度終了するまで、Webサーバーのメモリから削除されません。
        (1)ロード:サーバーの起動時にサーブレットのインスタンスをロードします。
        (2)初期化:Webサーバーの起動時、Webサーバーが要求を受信したとき、またはその間のある時点で開始します。init()メソッドは初期化作業の完了を担当します;
        (3)、呼び出し:最初のアクセスから後続の複数の訪問まで、doGet()またはdoPost()メソッドのみを呼び出します;
        (4)、破棄:サーバーが停止したときインスタンスを破棄するには、destroy()メソッドを呼び出します。 
 
        2、フィルター:(javax.servletパッケージのフィルターインターフェイスのinit()、doFilter()、destroy()の3つのメソッドを実装する必要があります。空の実装もOKです)
        (1)、サーバーの起動時にフィルターインスタンスをロードします。 init()メソッドを呼び出してインスタンスを初期化します。
        (2)リクエストのたびに処理するためにメソッドdoFilter()を呼び出すだけです。

        (3)サーバーが停止しているときにdestroy()メソッドを呼び出して、インスタンスを破棄します。

 

 

  3.責任
 
       1.サーブレット:
 
        顧客の要求の性質に基づいて動的コンテンツを含む完全なhtmlページを作成して返し
        ます。既存のhtmlページに埋め込むことができるhtmlページの一部(htmlフラグメント)を作成します。
        送信されたクライアントを読み取ります。
        表示のデータ、クライアントから送信された表示データの読み取り、
        他のサーバーリソース(データベースやJavaアプリケーションを含む)との通信
        、ステータスコードと応答ヘッダーを介したクライアントへの非表示のデータの送信。
 
       2.フィルター:
 
        フィルターは、要求がサーブレットに到達する前にユーザー要求を前処理するか、サーブレットを離れるときにhttp応答を処理できます。
        サーブレットを実行する前に、まずフィルタープログラムを実行し、その前処理を実行します。
        プログラムのニーズに応じて変更します。要求と応答;
        サーブレットが呼び出された後、サーブレットの実行を傍受します


        4、違い:

      1.サーブレットプロセスは短いです。URLが送信された後、処理されてから、それ自体で指定されたページに返されるか、リダイレクトされます。これは主にビジネス処理前の制御に使用されます
        。2。フィルタープロセスは線形です。URLが渡された後、チェックした後、元のプロセスは引き続き下向きに実行され、次のフィルター、サーブレットなどによって受信され、サーブレットが処理された後、 、受け継がれません。フィルタ機能は、プロセスを元の方法で続行するため、またはプロセスを主導するために使用できますが、サーブレット機能は、主にプロセスを主導するために使用されます。
         filterを使用して、文字エンコードをフィルタリングしたり、ユーザーがログインしているかどうかを検出したり、ページのキャッシュを禁止したりすることができます。

5.実装フローチャート:

 

         1、サーブレット:

               

          2、フィルター:

           

 

 

リスナーとインターセプター、それらの4つの違いと接続があります

 

http://blog.csdn.net/hy6688_/article/details/38666569

おすすめ

転載: blog.csdn.net/Amos_liu/article/details/73152597