Interceptor 란?

WO_O·2023년 8월 2일

개요

인터셉터란 무엇이며, 직접 구현해봄으로써 이해를 돕는다.

인터셉터란?

  • Controller의 핸들러 호출 전, 후에 요청과 응답을 참조하거나 가공할수 있는 필터
  • 사용자 요청에 의해 서버에 들어온 Request 객체를 컨트롤러의 핸들러로 도달하기 전에 개발자가 원하는 추가 작업을 한후 핸들러로 보낼 수 있도록 한다.

사용용도

  • 컨트롤러의 핸들러가 실행되기 전, 후에 로그인체크, 권한 체크 등의 작업을 원할때 사용한다.

  • 예를 들어 오직 관리자만 접근할 수 있는 권한 체크를 한다고 하면
    인터셉터가 없을 경우 권한 체크를 위한 로직을 각 핸들러에
    작성해주어야만 하지만 인터셉터를 활용하면 핸들러의 url을
    servlet-context.xml에 설정해주기만 하면 스프링에서
    일괄적으로 해당 핸들러의 url경로에 인터셉터를 적용해준다.

인터셉터의 메서드
1) preHandle()

  • 컨트롤러가 호출되기 전에 실행
  • 리턴값 boolean, true일경우 preHandle() 실행 후 핸들러에 접근

2) postHandle()

  • 핸들러가 실행되었지만 View가 생성되기 이전에 호출

3) afterCompletion()

  • 모든 View에서 최종 결과를 생성하는 일을 포함한 모든 작업이 완료된 후에 실행

구현
작성 예정..

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

좋은 정보 감사합니다

답글 달기