Interceptor 구현하기

김영헌·2022년 1월 24일
0
post-thumbnail

Interceptor는 로그인을 구현할 때 주로 사용되는 것이다.
더 나은 이해를 위해 예시를 하나 들어보겠다. 만약에 로그인이 된 사람만 들어갈 수 있는 홈페이지가 있다고 가정해보자.
로그인이 된 사람만 들어가기 위해서는 홈페이지가 열리기전 사용자의 로그인 상태를 확인하여야 한다. 만약에 페이지가 하나정도면 뭐 어떻게 잘하면 될 수도 있지만 여러개일 경우에는 하나하나 따로 다 체크하게 만들기는 어렵다 그래서 그러한 역할을 쉽게 구현하기 위해서 Interceptor라는 것이 생겨났다.
Interceptor는 정해진 페이지들이 열리기 전에 Interceptor 클래스를 한번 걸치고 열리게 만든다.

위에 사진을 보면 Interceptor 안에 존재하는 preHandler()를 통해서 한번 검사를 하고 AOP로 넘어가서 Controller로 가는 것을 볼 수 있다.

그러면 이제는 어떻게 구현하는지 알아보도록 하자!

0. Spring Framework Version 변경

pom.xml파일에 들어가서 version을 변경해주어야한다.

1. HandlerInterceptorAdaptor 상속받은 Interceptor 클래스 생성하기

2. Login DB 관련 클래스 생성하기

EX) UserDAO, UserVO, UserService(Interface), UserServiceImpl, user-mapper.xml
들이 필요하다.

3. HandlerInterceptorAdaptor에 preHandler()함수 작성하기

용도에 맞게 함수를 작성하면 되는데 어려울 경우 1번에 나온 코드를 참고하여도 좋다.

4. Interceptor 적용 예외할 것들 설정하기

Deployed -> webapp -> WEB-INF -> spring -> appServlet -> servlet-context.xml

mapping path 같은 경우는 Interceptor를 적용할 애들이고 exclude-mapping 같은 경우는 Interceptor 적용을 예외할 애들이다. (예시에서는 exclude-mapping은 안나왔다.)
path를 적용할때는
http://localhost:8080/wabang/review/writepage 일경우
mapping path="/review/writepage"
이렇게 해주면 된다.

5. Controller와 Jsp 예시

profile
대기업 회장님

0개의 댓글