티스토리 뷰
Interceptor란 컨트롤러에 들어오는 요청 가로채는 역할
컨트롤러에 들어오는 요청을 가로채서 컨트롤러 실행전 이 회원이 로그인을 하였는지
권한은 있는지 등등을 체크하기 위해 주로 사용한다.
1. dispatcher-servlet.xml 에서 interceptor 부분 bean을 등록한다.
dispatcher-servlet.xml 파일을 열어서 다음 항목을 추가한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<!-- 인터셉터 -->
<property name="interceptors">
<list>
<ref bean="authenticInterceptor" />
<ref bean="webLogInterceptor"/>
</list>
</property>
</bean>
|
2개의 interceptor를 추가할 예정인데.
1. authenticInterceptor : 권한, 세션체크 부분로직이 들어갈 인터셉터이다.
2. webLogInterceptor : 단순 log를 쌓기 위한 인터셉터이다.
class="" 부분에 패키지명.클래스명 입력을 해준다.
서블릿 설정을 완료 하였으면 다음엔 클래스 파일을 생성하면됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package com.test.common;
/**
* @author lso
* @version 1.0.0
* @since 2020-01-22 오전 10:59
* @param
* @return
* <pre>
* Comments : 권한 인터셉터
* <pre>
*/
public class AuthenticInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle >>> Controller 실행 전 실행");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modeAndView) throws Exception {
System.out.println("postHandle >>> Controller 실행 후 실행");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex){
System.out.println("afterCompletion >>> preHandle 메소드 return값이 true일 때 실행");
}
}
|
여기서 주목할점은
메소드가 3개가 있는데 preHandle, postHandle, afterCompletion이렇게3개가있습니다.
각각 소스에 적혀있듯이 실행되는 순서가 다릅니다.
메소드 실행순서는 다음과 같다.
filter -> preHandle -> controller -> postHandle -> afterCompletion
filter는 다음에 공부해보도록 한다.
위와같이 세팅을 후 실행을 하면
위 사진과 같이 메소드 실행순서에 맞춰 동작하는걸 확인 할 수 있다.
preHandle 부분에 세션체크나 권한체크 등 컨트롤러 동작 전 확인하는 소스를 넣으면 된다.
아 추가로 webLogInterceptor 도 마찬가지로 3가지 메소드를 사용하시면 됩니다.
이부분엔 로그쌓는 로직 이 들어가면 되겠네요. ^^
이상 끝
'Spring' 카테고리의 다른 글
ajax json 리턴하기, ModelAndView("jsonView") (0) | 2020.03.10 |
---|---|
Spring tiles 동적메뉴 구성 - ViewPreparer 적용하기 (1) | 2020.01.17 |
전자정부프레임워크(egov), spring - tiles 적용하기 (0) | 2020.01.15 |
스프링의 주요특징 (0) | 2018.03.22 |
- Total
- Today
- Yesterday
- #egov #전자정부 #spring #interceptor #인터셉터
- spring #tiles #egov #전자정부프레임워크 #tiles적용
- jsp
- button submit막기
- form submit
- json
- tiles #tiles3 #spring #ViewPreparer #Preparer #동적매뉴구성 #동적매뉴 #타일즈적용
- JsonView
- #스프링 #spring #특징 #스프링특징 #java
- html
- centos7
- modelandview
- return json
- GitLab설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |