Open berryberrybin opened 2 years ago
public class SampleFilter implements Filter {
private String message;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("SampleFilter init ");
//init-param 정보 가져오기
message = filterConfig.getInitParameter("messgae");
System.out.println("message = "+ message);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//사전처리
System.out.println("SampleFilter의 사전");
//실제 target 대상을 호출
//SampleFilter의 doFilter가 호출되는 것이 아닌 chain.의 doFilter가 호출된 것
chain.doFilter(request, response);
//사후처리
System.out.println("SampleFilter 사후 ");
}
@Override
public void destroy() {
}
}
<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
필터 생성
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>
<filter>
<init-param>
<param-name>message</param-name>
<param-value>오늘은 목요일</param-value>
</init-param>
</filter>
<filter>
<filter-name>sampleFilter</filter-name>
<filter-class>ex0331.filter.SampleFilter</filter-class>
<init-param>
<param-name>message</param-name>
<param-value>오늘은 목요일</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>sampleFilter</filter-name>
<url-pattern>/*</url-pattern> <!--전체의미함 /*-->
<url-pattern>*.jsp</url-pattern> -->
<url-pattern>/test02.jsp</url-pattern>
<url-pattern>/testServlet</url-pattern>
</filter-mapping>
@WebFilter(
urlPatterns = { "/*" },
initParams = {
@WebInitParam(name = "encoding", value = "UTF-8")
})
public class EncodingFilter extends HttpFilter implements Filter {
private String encodingValue;
public void init(FilterConfig fConfig) throws ServletException {
encodingValue=fConfig.getInitParameter("encoding");
System.out.println("test ="+ encodingValue);
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//사전처리
request.setCharacterEncoding(encodingValue);
chain.doFilter(request, response);
//사후처리는 필요 없음
}
}
Filter 개념