요청(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

+ Recent posts