본문 바로가기

Java

Filter

 

하나! Filter 인터페이스를 구현

둘! Life Cycle은 init(FilterConfig filterConfig), doFilter(), destroy()로 이루어진다.

FilterConfig는 지정한 필터의 초기화 파라미터를 읽어올 때 사용한다.

doFilter(ServletRequest request,ServletResponse response, FilterChain chain)

FilterChain은 체인에 있는 다음 필터에 변경한 요청과 응답을 건네줄 수 있다.

셋! 작성된 Filter를 사용하기 위해서는 <filter> & <filter-mapping>를 사용하여 Web.xml에 등록하여야 한다.

Web.xml

<filter>

    <filter-name>jspFilter</filter-name>

    <filter-class>jsp.filter.JspFilter</filter-class>

</filter>

<!-- 언제 필터가 실행되는지 설정 -->

<filter-mapping>

    <filter-name>jspFilter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

JspFilter.java

package jsp.filter;

 

import java.io.IOException;

 

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

 

public class JspFilter implements Filter{

    private FilterConfig conf;

    public void init(FilterConfig config){

        this.conf=config;

    }

    public void destroy(){}

    public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)

        throws ServletException, IOException{

        

        //사전작업

        System.out.println("사전작업");

        long t1=System.currentTimeMillis();

        chain.doFilter(request, response);//다음 일을 할 곳으로 수행이 넘어감

        System.out.println("사후작업");

        long t2=System.currentTimeMillis();

        System.out.println("실행시 걸린 시간 : "+ (t2-t1));

        //사후작업

        

    }

}

 

이제 어떠한 웹페이지가 열리던지 아래와 같은 메시지가 시스템상에출력된다.

사전작업

사후작업

실행시 걸린 시간 : 923

 

이제 필터를 통해 웹페이지들의 출력언어 설정을 해보자.

Web.xml

<filter>

    <filter-name>jspFilter</filter-name>

    <filter-class>jsp.filter.JspFilter</filter-class>

    <init-param>

        <param-name>endocing</param-name>

        <param-value>euc-kr</param-value>

    </init-param>

</filter>

<!-- 언제 필터가 실행되는지 설정 -->

<filter-mapping>

    <filter-name>jspFilter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

JspFilter.java

String encoding=conf.getInitParameter("encoding");

        request.setCharacterEncoding(encoding);

'Java' 카테고리의 다른 글

Spring_message Project  (0) 2010.06.16
Spring 중간 점검 실습  (0) 2010.06.15
Spring 초간단 실습  (0) 2010.06.15
Struts 1 설치 및 간단한 실습  (0) 2010.06.14
File Upload API  (0) 2010.06.13
Spring에서 자주 사용되어지는 API 묶음  (0) 2010.06.13
간단한 Spring Project 실습하기  (0) 2010.06.13
Spring 설치 및 이클립스와의 연동  (1) 2010.06.13
Tomcat 설치 및 간단한 환경설정  (0) 2010.04.22
0401 Report Source  (0) 2010.04.01