[CS] Filter와 Interceptor

박상민·2023년 6월 15일
0

Computer Science

목록 보기
21/29

❗️Filter

  • DispatcherServlet 이전에 실행된다.
  • 모든 요청을 처리하는 DispatcherServlet 앞단에 실행되기 때문에 모든 일괄적인 요청에 대해 변경하거나 유효성 검사를 한곳에서 처리할 수 있다. (인코딩 변환, 로그인 여부확인, XSS방어)
  • 스프링 빈이 아니므로 web.xml에 등록해야 한다.
  • Filter는 빈으로 등록되지 않아서 주입을 받을 수는 없지만 애플리케이션 컨텍스트의 생성된 빈들을 주입 받을 수는 있다. (Spring Security Filter)

💡 DispatcherServlet이란 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러이다.
클라이언트로부터 어떠한 요청이 오면 Tomcat과 같은 서블릿 컨테이너가 요청을 받게 되고, 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다. 이후 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야하는 컨트롤러를 찾아서 작업을 위임한다.

❗️Interceptor

  • Interceptor는 DispatcherServlet 다음에 실행되는 스프링 내부 영역으로 Application Context 내에서 관리되므로 Bean으로 등록할 수 있다.
  • Interceptor는 특정 HandlerMapping에 종속되어 다양한 전략의 Interceptor를 생성할 수 있다.
  • Interceptor는 @ControllerAdvice, @ExceptionHandler를 이용해 예외처리가 가능하다.
profile
💡 클린코드를 지향하는 Backend Developer

0개의 댓글