Filter開発


Filter:フィルタです.不正な文字のフィルタリング、文字コードフィルタリング、ログイン検証フィルタなどは、プログラミング中によく使用されるフィルタであり、アプリケーションをより人間的にすることができます.
 
一、Filterの主な機能
1、不正な文字をフィルタします.
2、統一的な文字コードを設定する.
3、ユーザーに対してログイン検証を行う.
4、画像のファイルフォーマットを変更します.
5、圧縮処理を行う.
6、XMLの出力に対してXSLTを用いて変換する.
 
二、Filterの使い方
Filterはサーブレットと似ており、Javaクラスでもあります.したがって、その追加方法は通常のJavaクラスと全く同じです.プログラミングでFilterクラスをカスタマイズするには、Filterインタフェースを実装する必要があります.また、Filterインタフェースのinit()、doFilter()、destroy()メソッドを実装する必要があります.
Init()メソッドとdestroy()メソッドは,それぞれFilterの初期化と破棄に用いられる.
doFilterは、すべてのフィルタ処理コードがこの方法にある特定のフィルタ処理を実現するために使用される.doFilterメソッドは、request、response、chainの3つのパラメータを受信します.requestおよびresponseは、次のFilter(複数のFilterがある場合)またはJSPおよびサーブレットに渡すために使用されます.chainはdoFilterメソッドを呼び出すことで次のFIlterを呼び出し,元のJSPやサーブレットなどの他のコンテンツを呼び出す.
 
三、Filter例:カスタムのFilterクラス設計及びFilterの構成(サーブレット類似)
1、カスタムFilter:MyFilter.JAvaはFilterインタフェースとその3つの方法を実現することを要求する
 
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.serlvet.ServletRequest;

public class MyFilter implements Filter
{
	//       init()
	public void init(FilterConfig filterConfig) throws ServletException{
		System.out.println("Filter   !");
	}
	//      doFilter()
	public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
	  System.out.println("    !");
	    //     Filter        
	   chain.doFilter(request,response);
	}
	//      destroy
	public void destroy(){
	System.out.println("Filter  !");
	}

}

  
2、Serlvetと同様に、プロファイルwebに必要である.xmlでは、サーブレットと同様の構成を行います.
 
<filter>
 <filter-name>MyFilter</filter-name>
 <filter-class>filter.MyFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>MyFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 
ここでurl-patternタグの値は「/*」であり、このフィルタがWebサイトのすべてのURLをフィルタリングすることを示します.
 
3、Filterのライフサイクル:
(1)、WebサーバTomcatを再起動すると、Filterはサーバの起動に伴って初期化されます.
(2)、ブラウザで任意のJSPページを開くとFilterがフィルタリングを開始する.
(3)、サーバをシャットダウンし、Filterで破棄する.
 
この例では、この3つのプロシージャをそれぞれTomcatサーバのコンソールに出力します.
 
Filter初期化!
 
フィルタを実行!
 
Filter破棄!