29-フィルタ、Listener


一、フィルター
1.1概念
生活中のフィルター:浄水器
Webアプリケーションのフィルタ:サーバのリソースにアクセスすると、フィルタは要求をブロックし、特殊な機能を完了することができます.
フィルタの役割:登録検証、統一処理符号化、敏感字のフィルタリング
Webの3つのコンポーネントの1つ:servlet、filter、listener
1.2使用手順
  • 定義クラス実装クラスFilterインタフェース
  • 書き換え方法
  • フィルタするリソースパス
     <filter>
        <display-name>LoginFilterdisplay-name>
        <filter-name>LoginFilterfilter-name>
        <filter-class>com.qf.filter.LoginFilterfilter-class>
      filter>
      <filter-mapping>
        <filter-name>LoginFilterfilter-name>
        <url-pattern>/*url-pattern>
      filter-mapping>
    
  • を構成する.
    1.3プロセスの実行
  • サーバ起動時にinit()初期化機能
  • を実行する.
  • フィルタで構成するブロッキングパスのリソースにアクセスすると、そのリソースのアクセスがブロックされ、doFilter()メソッド
  • が実行する.
  • 実行機能の強化
  • 放行:chain.doFilter(request, response);
  • 指定リソース
  • へのアクセス
  • 実行放行後のコード
  • 1.4フィルタのライフサイクル
  • init():フィルタを初期化し、サーバ起動時に
  • を実行します.
  • doFilter():ブロックを実行し、構成されたブロックパスにアクセスしたときに実行し、アクセスするたびに
  • を実行します.
  • dostroy():リソースを解放し、サーバを正常に閉じる場合にのみ
  • を実行します.
    1.5フィルタチェーン
    複数のフィルタの構成
    実行順序:
  • フィルタ1
  • フィルタ2
  • 放行後のリソース
  • フィルタ2
  • フィルタ1
  • 1.6フィルタパスの構成
  • 指定リソース:/index.jsp
  • ブロックディレクトリ:/test/*
  • 拡張子ブロック:*.jsp
  • すべてをブロック:/*
  • 二、リスナー
    2.1概要と分類
    コンセプト:webの3つのコンポーネントの1つ
    分類:
  • ドメインオブジェクトのライフサイクル:
  • ServletContextListener
  • HttpSessionListener
  • ServletRequestListener

  • ドメインオブジェクトにおけるデータの変化:
  • ServletContextAttributeListener
  • HttpSessionAttributeListener
  • ServletRequestAttributeListener

  • HttpSessionの不動態化と活性化
  • HttpSessionActivationListener
  • HttpSessionBindingListener


  • 2.2使用手順
  • カスタムクラス実装Listenerインタフェース
  • 書き換え方法
  • 構成
    <listener>
      	<listener-class>com.qf.listener.MyServletContextListenerlistener-class>
     listener>