인터셉터(Interceptor)

밍디·2024년 2월 8일

인터셉터

: 인터셉터의 정식 명칭은 핸들러 인터셉터(Handler Interceptor)이다.
클라이언트의 요청이 컨트롤러에 가기 전에 가로채고, 응답이 클라이언트에게 가기전에 가로챈다. 즉, 인터셉터는 DispatcherServlet이 컨트롤러를 요청하기 전,후에 요청과 응답을 가로채서 가공할 수 있도록 해준다.

예를 들어 로그인 기능이 있을 때, 로그인을 한 사람만 보이는 페이지가 있고, 로그인 한 사람만 글을 작성할 수 있다고 하자. 그러면 페이지 컨트롤러에서도 로그인 확인 로직이 들어가고, 글 작성 컨트롤러에서도 로그인 확인 로직이 들어가야 한다. 인터셉터를 사용하면 컨트롤러에 로직이 로그인 확인 로직이 없어도 컨트롤러에 들어가기전에 인터셉터에서 로그인 확인을 하고 컨트롤러로 보낸다. 즉, 하나의 인터셉터로 프로젝트 내의 모든 요청에 로그인 여부를 확인할 수 있다. 

인터셉터를 만들려면 HandlerInterceptorAdaptor 클래스를 상속 받아야함. HandlerInterceptorAdaptor 클래스를 상속받으면 사용할 수 있는 3가지의 메서드 preHandle(), postHandle(), afterCompletion()가 있음.

  • preHandle : 컨트롤러가 호출되기 전에 실행되는 메서드
  • postHandle : 컨트롤러가 호출되고 난 후에 실행되는 메서드
  • afterCompletion : 컨트롤러의 처리가 끝나고 화면 처리까지 끝나면 실행되는 메서드

필터와 인터셉터의 차이

profile
Developer

0개의 댓글