본문 바로가기

BE/Spring

[Spring] Interceptor

 

 

 

 

 

Interceptor

Interceptor

 

Interceptor : 컨트롤러로 가기 전에 무언가 처리할 내용 ( preHandle ) 이나, 컨트롤러 까지 로직 작동 후 클라이언트에게 도착하기 전에 처리할 내용 ( postHandle ) 을 담당 ( 불필요한 리소스를 차단 )

 

Interceptor 패키지, 클래스 파일 생성

 

메소드 오버라이딩

 

servlet-context.xml 파일에 MemberInterceptor 클래스를 /index 경로가 실행될때 사용할 Interceptor 로 설정 ( /index 경로로 접속할때 컨트롤러로 전달되기 전 오버라이딩 한 메소드인 preHandle 이 실행, 컨트롤러로 전달된 후 오버라이딩 한 메소드인 postHandle 이 실행된다 )

 

MemberInfo 를 로그인한 사용자만 확인할 수 있게 Interceptor 를 사용해서 설정할 것임 >> Controller 에서도 세션을 기준으로 redirect 로 처리할 수 있음 그러나 로직을 세션을 비교하는 부분마다 다 작성해줘야 하기 때문에 비효율적....

 

servlet-context.xml 에 Interceptor 로 미리 로직을 분류할 경로를 추가 >> session 값을 미리 Controller 에 도착하기 전에 Interceptor 에서 확인하여 Controller 로 이동시킬지 Controller 로 이동시키지 않고 redirect 로 login 페이지로 이동시킨다

 

스크립트를 사용해서 alert 창도 띄워주게끔 설정

 

코드 실행

 

위와 같이 하위 경로를 모두 표현하여 사용할 수도 있다

 

728x90