지난 글에서 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 걱정하지말고 코딩해보자 ! 그럼 오늘도 즐거운 코딩~~~
'Develop > Spring' 카테고리의 다른 글
[Spring] Spring Boot 환경 설정 (0) | 2020.03.11 |
---|---|
[Spring] Spring Framework 와 Spring Boot (2) | 2020.03.09 |
[Spring] Interceptor 를 이용한 페이지 전환 구현 (1) (0) | 2019.10.27 |
[Spring] JdbcTemplate 을 이용한 Database 통신 (0) | 2019.10.10 |
[Spring] Redirect를 이용하여 특정 페이지로 전환하기 (2) (0) | 2019.09.28 |
댓글