Posted on 2017. 3. 15. 09:54
Filed Under eGov/Spring
1. HandlerInterceptorAdapter 인터페이스 상속받는 클래스 생성, 인터페이스 함수 오버라이드
public class ControllerInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("IN ControllerInterceptor.preHandle()");
return super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mv) throws Exception {
System.out.println("IN ControllerInterceptor.postHandle() request.getRequestURI() = " + request.getRequestURI());
super.postHandle(request, response, handler, mv);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("IN ControllerInterceptor.afterCompletion()");
super.afterCompletion(request, response, handler, ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("IN ControllerInterceptor.afterConcurrentHandlingStarted()");
super.afterConcurrentHandlingStarted(request, response, handler);
}
}
2. /WEB-INF/config/framework/mvc/dispatcher-servlet.xml 파일 수정 (사용자의 세팅에따라 파일 위치는 다를수 있음)
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/**" /> <!-- /user/하위 전체 인터셉터 허용 -->
<mvc:mapping path="/user/main.do" /> <!-- 인터셉터 허용할 URL 세팅 -->
<mvc:exclude-mapping path="/user/main2.do" /> <!-- 인터셉터 제외할 URL 세팅 -->
<bean class="com.test.ControllerInterceptor"/> <!-- 해당 URL에서 사용할 인터셉터 클래스 설정 -->
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/user/xxx.do" />
<mvc:exclude-mapping path="/user/xxxx.do" />
<bean class="com.test.xxxxxInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
}