フィルターとモニター

6397 ワード

1、フィルタとは?フィルタは、あるurlを実行する前に必要なことであり、urlはあるserlvetに対応しているかもしれません.jspページの特徴でもあります.声明式のダイナミックで柔軟なモジュール化された移植可能な再利用可能な透明な機能です.統一認証処理は、ユーザーの要求をチェックし、より正確な記録監視をしたり、ユーザーに伝達されたパラメータを前処理したりします.データ隠しコード攻撃を防止して画像ファイルのフォーマットを変更すると、圧縮処理を行うことに応答してXMLの出力にxslを使用して2、フィルタの書き方1を変換します.カスタムクラスは、javax.servlet.Filterインターフェース2を実現します.3)web.xmlにこのfilterを配置し、web容器にこのようなfilterが存在することを伝える.filterを構成する初期化パラメータを使用して、Filterコードの中でFilterConfigオブジェクトで初期化パラメータを取得することができる.
<filter>
<filter-name>filter-name>
<filter-class>filter-class>
filter>
web容器にこのfilterがどのurlをフィルタするか教えてください.
<filter-mapping>
<filter-name>filter-name>
<servlet-name>servlet-name>      filter     servlet
<url-pattern>url-pattern>            servlet
filter-mapping>
3、Filterのライフサイクル*1)init(FilterConfig)初期化方法は、tomcat容器が起動するとフィルタを初期化します.2)そのフィルタリングのurlを実行する際に、まずこのurlに対応するserlvet*3を初期化して、filterのdoFilter()メソッドを呼び出し、フィルタリングを行います.chain.doFilterを使用して次のフィルタまたはservlet 4に転送し、次のフィルタのdoFilter方法またはservletのservice方法*5を実行し、ウェブコンテナを閉じる時にdestry()廃棄フィルタ4、FilterChinとは何ですか?FilterCharinオブジェクトはフィルタチェーンであり、別のFilterにFilterから伝達されたり、フィルタされたservletに直接伝達されたりすることができます.次がフィルタであれば、フィルタに渡して、次のフィルタのdoFilterを実行します.次がservletなら、servletに渡す.このservletを実行するservice方法は、フィルタチェーンの伝達doFilter(ServletRequest,ServletResonse)をFilter Chinオブジェクトのdofilter()方法を使用して実行し、ここで修正したrequestとreponseを次のフィルタまたはServletに渡してchain.doFilterの前で実行する方法をフロントエンドといいます.chain.doFilterの後に実行する方法をバックエンドメソッドfilter 1といいます.filter 1のdoFilterからfilter 2まで、filter 2はフロントエンド方法を実行します.フィlter 2に戻ってバック方法を実行し、フィlter 1に戻ってバック方法5、フィルタの実行順序はweb.xmlに配置されたfilterの順序に従って実行され、2つ以上のfilterが最終的に同じservletをフィルタすると、順番に上から下へ各filter 6、ServletContect Listener webコンテキストモニターは、tomcatなどのwebコンテナに展開されているアプリケーションの初期化と破壊を傍受して、自分を書いているモニターを書き込み、javax.servlet.Servlet.Servlet ContListenerインターフェースを実現する.
1 contextInitialized(ServletContextEvent sce) //  web            
2 contextDestroyed(ServletContextEvent sce) //  tomcat web          
使用シーン:アクセス人数の初期化、webアプリケーションのグローバル構成7、javax.servlet.Servlet.Servlet.ServletContact.AttributeListenerによるaplicationオブジェクト中の属性の追加、削除、更新された傍受
attributeAdded(ServletContextAttributeEvent scae)  //          
attributeRemoved(ServletContextAttributeEvent scae)  //          
attributeReplaced(ServletContextAttributeEvent scae) //           
scae.getName()は属性の名称scae.getValue()が取得できる.属性の値8、javax.servlet.http.HttpSession Listenerインターフェースはsession作成と廃棄の傍受tomcat容器が閉まっている時に、生産がsession Destroyedを呼び出すことができない.session.invalidat()またはtimeoutが初めて訪問した時にSessionを作成すると、session Createdを呼び出します.request.get Session()に9、javax.servlet.http.HttpSession AttributeListener対sessionの属性のモニターを呼び出すというわけではありません.
1 attributeAdded(HttpSessionBindingEvent se)  //          
2 attributeRemoved(HttpSessionBindingEvent se)  //          
3 attributeReplaced(HttpSessionBindingEvent se)  //          
10、javax.servlet.http.HttpSession Activation Listener ActivateとPassivateはオブジェクトを置き換えるための動作であり、Sessionオブジェクトがリソース利用や負荷バランスなどのためにハードディスクや他のメモリに一時的に保存されなければならない場合(オブジェクトの順序付けを通じて)、動作をPassivateといいます.一方、ハードディスクやメモリ上のSessionオブジェクトがJVMを再ロードするときに行う動作をActivate 11、javax.servlet.http.HttpSession BingingListenerといい、このインターフェースを実現した他の種類のオブジェクトがsessionの属性に追加されたときやSessionから削除されたときに呼び出す.
1 valueBound(HttpSessionBindingEvent event);          session   
2 valueUnbound(HttpSessionBindingEvent event);       session       
12、javax.servlet.ServletRequest Listener監査request要求の初期化と廃棄
requestDestroyed(ServletRequestEvent sre)  //       
requestInitialized(ServletRequestEvent src)  //        
13、javax.servlet.ServletRequest AttributeListenerは属性をrequestに設定するか、またはRequestから削除して、属性を更新するために呼び出される
1 attributeAdded(ServletRequestAttributeEvent srae)           
2 attributeRemoved(ServletRequestAttributeEvent srae)           
3 attributeReplaced(ServletRequestAttributeEvent srae)           
14、イベントの対象
javax.servlet.ServletContextEvent getServletContext();
javax.servlet.http.HttpSessionEvent getSission();
javax.servlet.ServletRequestEvent getServletRequest();
15、java.util.Propertis類の使用は.propertiesファイルを読み込むために使用され、propertiesファイルで指定されたkey値に基づいて対応するvalue値を取得し、WEB-INFディレクトリ下のtest.properties、ConfigUtil.java、PathUtil.javaを参照してください.