Filter
서블릿 전 및 후에서 가로채기 했음
- implements Filter
- 3가지 메서드 재정의
init(){}
doFilter(){ }
destroy()
⇒ 인터페이스니까 세가지를 다 구현해야함
3. web.xml에 등록
<filter>
…
<filter-mapping>
<url-pattern> /* </url-pattern>
HandlerInterceptorAdapter
Controller 전 / 후 / jsp 화면처리 후에서 가로채기 가능
- extends HandlerInterceptorAdapter
- 필요한 메서드만 재정의
a.가로채기
boolean preHandle(){}
b.가로채기
void postHandle(){}
c.가로채기
void afterCompletion(){}
⇒ 인터페이스가 아니니까 필요한 것만 선택해서 구현하면 됨 - servlet-context.xml에 빈으로 등록 ( <bean> 또는 component-scan )
- servlet-context.xml에 어떤 경로를 요청했을 때 실행할 지를 지정
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path=”경로지정1” />
<ref bean=”인터셉터빈 이름1” />
<mvc:interceptor>
<mvc:mapping path=”경로지정2” />
<ref bean=”인터셉터빈 이름2” />
PreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
Controller(RequestMapping 선언 Handler) 실행 직전에 동작하는 method.
return 값이 true일 경우 정상적으로 진행이 되고,
false일 경우 실행 종료
Controller 진입 X
Parameter 중 Object handler는 HandlerMapping이 찾은 Controller Class 객체이다.
PostHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
Controller 진입 후 View가 Rendering 되기 전 수행된다.
Parameter 중 ModelAndView modelAndView를 통해 화면 단에 들어가는 Data 등의 조작이 가능하다.
afterComplete(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
Controller 진입 후 View가 정상적으로 Rendering 된 후 수행된다.









여러개 지정하기


여러개를 한번에 지정




📌 Interceptor로 로그인 체크 확인하기
Interceptor를 이용해서 중복되는 작업 (로그인 체크 여부)을 할 수 있는 것이다.
(서블릿에서 필터를 적용했던 것처럼)




'Framework > SPRING FRAMEWORK' 카테고리의 다른 글
Spring MVC + Mybatis 연동 (0) | 2023.09.18 |
---|---|
JSP에서 리소스 접근 (Image, js, css) (0) | 2023.09.18 |
로그아웃 (로그인체크확인) (0) | 2023.09.18 |
로그인 처리 (0) | 2023.09.18 |
flash scope (0) | 2023.09.15 |
Filter
서블릿 전 및 후에서 가로채기 했음
- implements Filter
- 3가지 메서드 재정의
init(){}
doFilter(){ }
destroy()
⇒ 인터페이스니까 세가지를 다 구현해야함
3. web.xml에 등록
<filter>
…
<filter-mapping>
<url-pattern> /* </url-pattern>
HandlerInterceptorAdapter
Controller 전 / 후 / jsp 화면처리 후에서 가로채기 가능
- extends HandlerInterceptorAdapter
- 필요한 메서드만 재정의
a.가로채기
boolean preHandle(){}
b.가로채기
void postHandle(){}
c.가로채기
void afterCompletion(){}
⇒ 인터페이스가 아니니까 필요한 것만 선택해서 구현하면 됨 - servlet-context.xml에 빈으로 등록 ( <bean> 또는 component-scan )
- servlet-context.xml에 어떤 경로를 요청했을 때 실행할 지를 지정
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path=”경로지정1” />
<ref bean=”인터셉터빈 이름1” />
<mvc:interceptor>
<mvc:mapping path=”경로지정2” />
<ref bean=”인터셉터빈 이름2” />
PreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
Controller(RequestMapping 선언 Handler) 실행 직전에 동작하는 method.
return 값이 true일 경우 정상적으로 진행이 되고,
false일 경우 실행 종료
Controller 진입 X
Parameter 중 Object handler는 HandlerMapping이 찾은 Controller Class 객체이다.
PostHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
Controller 진입 후 View가 Rendering 되기 전 수행된다.
Parameter 중 ModelAndView modelAndView를 통해 화면 단에 들어가는 Data 등의 조작이 가능하다.
afterComplete(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
Controller 진입 후 View가 정상적으로 Rendering 된 후 수행된다.









여러개 지정하기


여러개를 한번에 지정




📌 Interceptor로 로그인 체크 확인하기
Interceptor를 이용해서 중복되는 작업 (로그인 체크 여부)을 할 수 있는 것이다.
(서블릿에서 필터를 적용했던 것처럼)




'Framework > SPRING FRAMEWORK' 카테고리의 다른 글
Spring MVC + Mybatis 연동 (0) | 2023.09.18 |
---|---|
JSP에서 리소스 접근 (Image, js, css) (0) | 2023.09.18 |
로그아웃 (로그인체크확인) (0) | 2023.09.18 |
로그인 처리 (0) | 2023.09.18 |
flash scope (0) | 2023.09.15 |