본문 바로가기
Develop/Spring

[Spring] Interceptor 를 이용한 페이지 전환 구현 (2)

by 코딩의성지 2019. 10. 30.

지난 글에서 Interceptor 가 무엇인지에 대해 공부를 했었다. ( https://devkingdom.tistory.com/27)

 

오늘은 실제로 그 부분을 구현해보려고 한다. 먼저 우리가 해야할 건 HandlerInterceptor를 만들어야하는데, 지난 글에서 Spring에서는 이를 쉽게 구현할 수 있도록 HandlerInterceptorAdapter을 지원해준다고 말했었다.

 

그렇다면 우리는 이 추상클래스를 상속받아 우리만의 Interceptor를 만들어보자.

 

여기서 질문 ! redirect를 대체할 메서드는 무엇일까요? 

 

이 질문에 답을 못하면 위의 링크로 가서 다시 글을 읽고 오자.

 

정답은 preHandle() 이다. 아래는 내가 구현한 Interceptor 클래스이다.

 

뭐 어렵지 않은 코드이다. 세션에 저장된 Attribute 가 있는지를 검사하고, 없으면 페이지를 redirect 해주는거다. 이 코드를 만들었으면 스플이 설정파일 (servlet-context.xml) 에 interceptor를 추가해준다.

 

설정파일에

<beans:beans>  </beans:beans> 안에 아래 그림 처럼 추가해주자.

 

위 에서 빨간색으로 직직 그어놓은 부분은 회사이름이라 그렇다. 회사 공모전을 준비하면서 작업하다 보니 회사이름이 들어갔으니 이해해주라.

 

위의 설정은 아주 쉽다. v1/user/removeForm 이라는 요청이 들어오면 UserLoginInterceptor가 동작해라 !!! 라는 의미이다. 쉽지? mapping은 여러개 넣을 수 있다. 리다익렉션이 필요한 요청은 저기다 복수로 넣어주면된다.

 

기존에 redirect 를 사용한 코드는 아래와 같은데

 

이제는 저렇게 redirect를 해줄 필요가 없게 되는거다. 왜냐 저요청이 들어오면 뭔자 session 값을 검사하고 redirect를 해주니깐 ㅎㅎ!! 그냥 아래 처럼 구현하면 된다 !

 

 

여러분들도 Interceptor 잘 사용해서 redirect 걱정하지말고 코딩해보자 ! 그럼 오늘도 즐거운 코딩~~~

반응형

댓글