공부하는 블로그

Spring Interceptor(인터셉터) 본문

Develop/Spring

Spring Interceptor(인터셉터)

모아&모지리 2017. 9. 14. 00:08


사용목적
1. 요청 경로마다 접근 제어를 다르게 해야 할 때
 사용한다.

2. 특정 URL을 요청할 때마다 접근 내역을 기록하고 싶을 때 사용한다.

3. 로그인 체크를 해야할 때 사용한다.



1. 컨트롤러(핸들러) 실행 직전

boolean preHandle(HttpServletRequest request, HttpServletResponse reponse, Object handler) throws Exception;

2. 컨트롤러(핸들러) 실행 직후

void postHandle(HttpServletRequest request, HttpServletResponse reponse, Object handler, ModelAndView modelAndView) throws Exception;

3. 뷰를 실행한 이후(응답 직전)

void afterCompletion(HttpServletRequest request, HttpServletResponse reponse, Object handler, Exception ex) throws Exception;



말그대로 spring 의 controller 호출전에 동작하는 방식으로써 보통은 로그인 체크유무가 필요한 

곳에서 주로 사용

예를 들어 게시판의 글쓰기 화면을 이동후, 한참동안 아무런 동작은 안하게 되면 세션이 제거되어 보통 기록해야 할 아이디 또는 이름같은 세션에 들어가있는 정보들이 증발하게된다. 

이럴경우 글쓰기를 하게 되면 테이블에는 일반 데이터들은 들어가있거나 혹은 아이디/이름 컬럼을 not null로 생성하였다면 오류발생이 일어날것이다. 

가끔 세션이 증발하여 null값이 아닌 공백이 들어갈경우도 있어서 문제가 발생한다.

이럴때는 세션체크를 한 후 세션이 제거된 상태일경우에는 게시물을 등록할 수 없게 해야 한다.

또는 마이페이지의 메뉴 혹은 브라우저에 남아있는 url로 접근을 할 경우에도 세션이 존재하지 

않으면 페이지 접근을 막아야 한다.


src/main/java 밑에 common.interceptors 폴더를 생성한다.



LoginCheckInterceptor.java 파일 생성



isLogin  값이 거짓일결우 /user/login 으로

??


applicationContext에 등록

1. 동적자원의 사용

2. 로그인체크

'Develop > Spring' 카테고리의 다른 글

Spring 파일업로드  (0) 2017.09.14
Spring error-page  (0) 2017.09.14
Static File (CSS,JS,IMG) 설정  (0) 2017.09.13
SLF4J와 Logback을 이용한 로그 남기기  (0) 2017.09.13
Spring 기본 설정 정리  (0) 2017.09.06