요청(request)을 받은 후나 응답(response)을 하기 전에 필터링 하는 것
웹 컴포넌트에 공통적으로 처리 할 부분을 모듈화하여 쉽게 처리함
○ javax.servlet.Filter 인터페이스
public interface Filter {
public void init(FilterConfig filterConfig) throws ServletException;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;
public void destroy();
}
1. web.xml 필터 처리
<filter>
<filter-name>LoginCheck</filter-name>
<filter-class>filter.LoginCheckFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginCheck</filter-name>
<url-pattern>/board/*</url-pattern>
</filter-mapping>
2. javax.servlet.Filter 인터페이스 구현
public class LoginCheckFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
.....
chain.doFilter(request, response);
}
}
● HttpServletRequestWrapper, HttpServletResponseWrapper클래스 (래퍼 클래스)
- Request와 Response를 변경하기 위해 래퍼를 사용함
public class NullParameterRequestWrapper extends HttpServletRequestWrapper{
public NullParameterRequestWrapper(HttpServletRequest request) {
super(request);
}
@Override
public String getParameter(String name) {
....
}
@Override
public String[] getParameterValues(String name) {
....
}
}
→ HttpServletRequestWrapper를 사용하여 HttpServletRequest의 모든 메서드를 오버라이딩 할수 있음
● 필터 vs 인터셉터
필터 : DispatcherServlet 전에 동작
인터셉터 : DispatcherServlet 후에 Controllr(Handler) 사이에서 동작
'Web > JSP&Servlet' 카테고리의 다른 글
RequestDispatcher (0) | 2020.08.30 |
---|---|
서블릿(Servlet) (0) | 2020.08.28 |
커스텀 태그(Custom Tag) (0) | 2020.08.28 |
MVC model 2 (0) | 2020.08.16 |
JSP 레이아웃 INCLUDE하기 (0) | 2020.08.13 |