상세 컨텐츠

본문 제목

Filter interface, filter setting, 필터 설정, 필터 인터페이스

JSP

by kwanghyup 2020. 7. 6. 16:02

본문

전형적인 필터 구현 방법

package filter;

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

public class SampleFilter  implements Filter {
    
    // 초기화 파라미터를 받아 저장할 필드 
    private String initParam;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 톰캣 서버 시작 시
        System.out.println("필터 초기화작업");

        // 필터 설정 시 넘겨줄 파라미터
        initParam = filterConfig.getInitParameter("myParam");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("필터수행");
        System.out.println("initParam = " + this.initParam);
        // 요청이 있을 때 마다 실행
        // 1. servletRequest를 이용하여 요청 작업 필터 수행
        // 2. 체인의 다음 필터 처리
            //filterChain.doFilter(servletRequest,servletResponse);
        // 3. ServletResponse를 이용하여 응답의 필터링 작업 수행
    }

    @Override
    public void destroy() {
        // 톰캣 서버 종료 시
        System.out.println("필터가 사용한 자원 반납");
    }
}

 

web.xml

	 <filter>
        <filter-name>sampleFilter</filter-name>
        <filter-class>filter.SampleFilter</filter-class>
        <init-param>
            <param-name>myParam</param-name>
            <param-value>filter-Param</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>sampleFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

 

애노테이션 사용

// 클래스 상단에 다음과 같이 선언 

@WebFilter(urlPatterns = {"/*"},
    initParams = { @WebInitParam(name = "myParam", value = "filter-Param") }
)
public class SampleFilter  implements Filter {
	// 생략 
}

 

관련글 더보기

댓글 영역