JavaWebフィルタ:フィルタ

、フィルタの概要

  1、の概念

    ウェブフィルタ:リソースアクセスサーバ、フィルタが要求を傍受することができる、いくつかの特別な機能を完了します。

  2、の役割

    操作を完了するための一般的な使用。以下のような:ログイン認証、統一符号化処理、敏感な文字やその他の機能。

第二に、基本的な使い方

  図1に示すように、インターフェースフィルタを実装するクラスの定義

  2、書き換え方法

  3、切片パス構成

    ①web.xml構成

    ②配置されたコメント

  図4に示すように、コードの実装

1  インポートのjavax.servlet。* ;
2  インポートjavax.servlet.annotation.WebFilter。
3  輸入にjava.io.IOException;
4  
5 @WebFilter( "/ *" 6  パブリック クラス FirstFilterが実装フィルタ{
 7      公共 ボイド(破壊)を{
 8      }
 9  
10      公共 ボイドのdoFilter(のServletRequest REQ、たServletResponse RESP、れるFilterChain鎖)スローServletExceptionがは、IOException {
 11          のSystem.outを.println( "filterDemo1被执行了...." )。
12          // 放行操作
13          chain.doFilter(REQ、RESP)。
14      }
 15  
16      公共の ボイドのinit(に、FilterConfig設定)がスローServletExceptionが{
 17  
18      }
 19  
20 }

 

フィルタの第三に、細部

  1、どのようにフィルタを設定するには?

    (1)コンフィギュレーションノート

       @WebFilterを追加()インターセプト資源であることをアクセス・パスを埋めるクラスにすることができます。

    (2)web.xml構成

1    < フィルター> 
2          < フィルタ名> DEMO1 </ フィルタ名> //フィルタの名前
。3          < フィルタクラス> cn.ks.web.filter.FilterDemo1 </ フィルタクラス> //完全なクラス名
4      </ フィルタ> 
5。     < フィルタマッピング> 
6。         < フィルタ名> DEMO1 </ フィルタ名> 
7。         <! - ノックダウンパス- > 
8          < URLパターン> / * </ のurl-pattern >
9      </ フィルタマッピング>

 

  2、実行フローフィルタ?

    (1)フィルタを実行します

    (2)資源の実装がリリースされます

    (3)バックコードフィルタ次のコードを実行放出

  3、フィルタのライフサイクル・アプローチ?

    (1)initメソッド:サーバーが開始された後、それはFilterオブジェクトを作成し、initメソッドを呼び出します。一度だけ行って、通常のリソースをロードするために使用。

    (2)doFilterメソッド:すべてのリソース要求が遮断され、それが実行されます。実行複数回

    (3)Destoryは:サーバーを閉じた後、フィルタオブジェクトが破棄されます。サーバが正常にシャットダウンされている場合は、destroyメソッドを実行します。一度だけ行って、一般的にリソースを解放するために使用。

  詳細に図4に示すように、フィルタ構成?

    (1)切片パス構成

       1.特定のリソースパス:のみアクセスindex.jspのリソース/index.jsp、フィルタが実行されます

       2.ブロックディレクトリ:/ユーザーの下のすべてのリソースに/管理/ *アクセス、フィルタが実行されます

       3.インターセプト拡張子:*すべてのリソースへの.jsp接尾という名前のJSPへのアクセスは、フィルタが実行されます

       4.インターセプトすべてのリソース:/ *すべてのリソースにアクセスするには、フィルタが実行されます

    (2)インターセプトモード設定:リソースがアクセスされる方法

       コンフィギュレーション・ノート

          dispatcherTypesプロパティを設定します。

          

プロパティ名 説明
要求 デフォルト値。ダイレクトブラウザがリソースを要求します
FORWARD リソースへのアクセスを転送
含める これは、リソースへのアクセスを含んでいます
エラー エラージャンプリソース
ASYNC リソースへの非同期アクセス

       web.xml構成

           设置 <dispatcher></dispatcher>标签,在里面填入上面的值即可。

  5、过滤器链(配置多个过滤器)

    (1)执行顺序:如果有两个过滤器:过滤器1和过滤器2

       ① 过滤器1

       ② 过滤器2

       ③ 资源执行

       ④ 过滤器2

       ⑤ 过滤器1

    (2)过滤器先后顺序问题

       ① 注解配置:

        规则:按照类名的字符串比较规则比较,值小的先执行。

        如: AFilter 和 BFilter,AFilter就先执行了。

       ② web.xml 配置:

        规则: <filter-mapping>谁定义在上边,谁先执行

 

おすすめ

転載: www.cnblogs.com/niujifei/p/11627551.html