코딩마을방범대
Java의 Interceptor 본문
728x90
Interceptor
- Client로부터 들어오는 요청( HttpRequest )을 Controller의 Handler로 도달하기 전에 가로채거나
Controller로 부터 보내는 응답( HttpResponse )을 가로채는 역할 - HandlerInterceptor에서 가로채어 원하는 추가적인 로직을 수행한 후에
Controller의 Handler로 보낼 수 있도록 하는 Module
( Handler : Client가 요청한 url에 따라 실행되어야 할 Method )
사용 방법
1. HandlerInterceptor 인터페이스를 구현하는 방법
preHandle
- HttpRequest를 컨트롤러의 Handler로 보내기 전에 실행하는 메소드
postHandle
- 요청에 대한 응답을 View에 렌더링 하기 전에 호출되는 메소드
- ModelAndView 정보를 알 수 있음
- 특정 View ( 페이지 )에서 ModelAndView 값을 수정해야할 경우 사용
afterCompletion
- View에 렌더링과 모든 동작이 끝난 후에 작동하는 메소드
public class userInterceptorImpl implements HandlerInterceptor{
// 매개변수 Object는 핸들러의 정보를 의미함 ( RequestMapping, DefaultServletHandler )
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException. JwtException {
...
// 반환값이 false라면 Handler로 보내지 않는다.
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception{
...
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object handler, Exception e) throws Exception {
...
}
}
2. HandlerInterceptorAdapter 클래스를 상속받아 구현
preHandle
- HttpRequest를 컨트롤러의 Handler로 보내기 전에 실행하는 메소드
public class userInterceptor extends HandlerInterceptorAdaper{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException, JwtException{
...
// 반환값이 false라면 Handler로 보내지 않는다.
return true;
}
}
참고 사이트
AOP, Filter, Interceptor의 정의와 차이점 (2) - Interceptor 편 - Juwon
Spring boot환경에서 JWT 사용하기 - 민수's 기술 블로그
728x90
'💡 백엔드 > Java' 카테고리의 다른 글
HttpRequest에서 body값 가져오기 (0) | 2023.05.29 |
---|---|
JAVA의 @ExceptionHandler (0) | 2023.05.28 |
Log - (2) Logback (0) | 2023.05.28 |
SpringBoot Custom Annotation 생성하기 - (1) 파라미터에 부여 (0) | 2023.05.28 |
JPA가 대문자 테이블명을 인식하지 못할 때 (0) | 2023.05.28 |