2010年9月14日火曜日

フィルター処理の記述、

■サーブレット表示のソース
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SampleFilter extends HttpServlet
{
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException
    {
        try
        {
            response.setContentType("text/html;charset=Windows-31J");
            response.getWriter().println("<p>Servlet処理です</p>");
        } catch (Exception e)
        {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
}


■フィルター表示のソース

import java.io.*;
import java.util.*;
import javax.servlet.*;

import javax.servlet.*;

import javax.servlet.http.*;


public class FilterSrc implements Filter
{
    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
        throws IOException,ServletException
        {
        try{
            response.setContentType("text/html;charset=Windows-31J");
            PrintWriter pw = response.getWriter();
            pw.println("フィルタ処理");

            chain.doFilter(request, response);
        }catch (Exception e) {
            // TODO: handle exception
        }
        }
       
    public void init(FilterConfig filterConfig) {
        // TODO 自動生成されたメソッド・スタブ
       
    }
    public void destroy() {
        // TODO 自動生成されたメソッド・スタブ
       
    }

}

■web.xmlの記述

    <servlet>
        <servlet-name>SampleFilter</servlet-name>
        <servlet-class>SampleFilter</servlet-class>
    </servlet>
    <filter>
        <filter-name>FilterSrc</filter-name>
        <filter-class>FilterSrc</filter-class>
    </filter>
    <servlet-mapping>
        <servlet-name>SampleFilter</servlet-name>
        <url-pattern>/FilterSrc/SampleFilter</url-pattern>//ここをそろえておくことが味噌
    </servlet-mapping>

    <filter-mapping>
        <filter-name>FilterSrc</filter-name>
        <url-pattern>/FilterSrc/SampleFilter</url-pattern>
//ここをそろえておくことが味噌
    </filter-mapping>
そのたポイント■
①フィルターのソースのメソッドはdoFilter()です、その内部で処理を行いましょう、
FilterCainのdoFilter()メソッドの処理が終わると次の処理が行われます
②Filterを実装
③doFilterの引数はServletのリクエスト、レスポンス、FilterChainの3つ
④実装したFilterのinitやdesroyのメソッドも忘れずに

0 件のコメント:

コメントを投稿