フィルタ
水曜日, 1月 19th, 2005今まで等閑にしておいたFilterについて調べてみました。
まだ使ったこと無いので、メモ程度に。
フィルタとはクライアントからのリクエストおよびレスポンスに対して、リソースServlet、JSP、HTHMLでの処理の前および後に何らかの処理を行うオブジェクトの事。文字のエンコーディングやログ取得などに使う。
フィルタはServlet2.3から使用可能。
フィルタはjavax.servlet.Filterインターフェイスを実装して作成する。
-
public class XxxxFilter implements Filter {
-
public void <strong>doFilter</strong>
-
(ServletRequest request, ServletResponse response, FilterChain chain)
-
// ここでフィルターにさせたい処理を記述
-
}
-
public void <strong>init</strong>(FilterConfig config) throws ServletException {
-
}
-
public void <strong>destroy</strong>() {
-
}
-
}
それから、アプリケーションの配置記述子(web.xml)かTomcatのConfの下などにあるサービスのweb.xmlにフィルタのマッピングを記述しないといけない。
-
<filter>
-
</filter><filter>XXXFilterName</filter>
-
<filter>xxx.yyy.zzz.XxxxFilter</filter>
-
-
<filter>
-
</filter><filter>XXXFilterName</filter>
-
<url>/*</url><!--←こうするとURL下の全てのServletの処理に行く前にフィルタを通る。-->
Tomcatのweb.xmlの下の個所をShift_JISにするとエンコーディングをやってくれるらしい。今までStringユーティリティクラス等を作成して使っていた…。
-
<filter>
-
</filter><filter -name>Set Character Encoding</filter>
-
<filter -class>filters.SetCharacterEncodingFilter</filter>
-
<init -param>
-
<param -name>encoding</param>
-
<param -value><strong>Shift_JIS</strong></param>
-
</init>
-
-
<filter -mapping>
-
</filter><filter -name>Set Character Encoding</filter>
-
<url -pattern>/*</url>