11.3.1 HandlerInterceptor를 이용한 로그 기록
HandlerInterceptor 인터페이스는 preHandle(), postHandle(), afterCompletion() 세 메서드를 가지고 있습니다.
preHandle() 메서드는 웹 요청 URL이 컨트롤러에 들어가기 전에 호출되며, false로 반환하면 이후 내용은 실행하지 않습니다. postHandle() 메서드는 웹 요청 URL을 컨트롤러가 처리한 후 호출되며, 컨트롤러에서 예외가 발생하면 더 이상 실행되지 않습니다. afterCompletion() 메서드는 컨트롤러가 웹 요청을 처리하여 뷰에 응답 전송이 종료된 후 호출됩니다.
HandlerInterceptor 인터페이스의 메서드 형식은 다음과 같습니다.
boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception;
• 역할: 컨트롤러를 호출하기 이전에 핸들러 실행을 차단합니다.
• 매개변수:
- request: 현재 HTTP 요청
- response: 현재 HTTP 응답
- handler: 실행 핸들러 선택