본문 바로가기
JSP & Servlet

Servlet filter

by 스타디아 2022. 12. 19.

#Servlet Filter 생성

서블릿 필터의 생성은 Filter (jakarta.servlet)를 상속 받는 클래스를 만든다

 

public class CharacterEncodingFilter implements Filter {
   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
   throws IOException, ServletException {

   System.out.println("before filter");  // 서블릿 실행 전 실행됨
   chain.doFilter(request, response);  // 다음 필터나 서블릿으로 흐름 넘김
   System.out.println("after filter");  // 서블릿 실행 후 실행됨
   }
}

 

(서블릿 필터는 톰캣 시작 시에도 1회 실행된다.)

 

#Servlet Filter 매핑 (web.xml 수정)

어노테이션이 더 권장되지만, 방법을 써보면,

 

<filter>

   <filter-name>필터이름</filter-name>

   <filter-class>패키지명.필터class이름</filter-class>

</filter>

<filter-mapping>

   <filter-name>필터이름</filtername>

   <url-pattern>/*</url-pattern>     -> 모든 url에 대해 동작

</filter-mapping>

 

#Servlet Filter 매핑 (어노테이션 이용)

필터 class 위에 @WebFilter("/*")만 입력하면 됨.