Programming/Spring

[Spring] Interceptor 설정

성일만 2014. 11. 18. 13:54

Interceptor 설정



Spring MVC를 사용하다가 보면 Interceptor와 마주치게된다.

Controller에서 공통적이나 특정 패키지들에 대해 선,후 처리가 필요하기 때문이다.

이러한 부분에 대해 AOP로 구현하는 것이 문제가 되는 것은 아니나

Controller 부분이라면 Interceptor로 구현하는 것을 권장한다고 한다.


우선 Interceptor는 처리에 따라 3가지로 구분되어져 있다.

preHandle() : Controller가 수행되기 전 호출 

(이후 Controller를 수행할지 여부를 boolean으로 return 함)

postHandle() : Controller가 수행된 후 View를 호출하기 전 호출

afterCompletion() : View 작업까지 완료한 후 호출

(responseBody를 이용할 경우 UI에 이미 값을 전달한 후 해당부분이 호출 됨)


Interceptor를 구현하기 위해서는 

org.springframework.web.servlet.HandlerInterceptor , 

org.springframework.web.servlet.handler.HandlerInterceptorAdapter 

를 상속받아 구현하면 된다.


기본적인 Interceptor



servlet-context.xml



인증에 관해서는 스프링으로 처리할 수 있으나 우선은 모든 요청에 대해 log를 찍고, 

관리자 메인, 로그인, 로그아웃을 제외한 모든 요청은 세션을 체크 후 로그인 페이지로 보내도록

작성했다.


WebInterceptor.java


WebUtils.getCurrentReqeustURL() 메서드는



log4j.xml


servlet-context.xml