Filter

서블릿 전 및 후에서 가로채기 했음

  1. implements Filter

  2. 3가지 메서드 재정의
    init(){}
    doFilter(){ }
    destroy()
    ⇒ 인터페이스니까 세가지를 다 구현해야함

    3. web.xml에 등록 

       <filter> 

          … 
       <filter-mapping>
               <url-pattern> /* </url-pattern>

 

 

 


 

HandlerInterceptorAdapter

Controller 전 / 후 / jsp 화면처리 후에서 가로채기 가능

  1. extends HandlerInterceptorAdapter
  2. 필요한 메서드만 재정의
    a.가로채기
    boolean preHandle(){}
    b.가로채기 
    void postHandle(){}
    c.가로채기
    void afterCompletion(){}
    ⇒ 인터페이스가 아니니까 필요한 것만 선택해서 구현하면 됨

  3. servlet-context.xml에 빈으로 등록 ( <bean> 또는 component-scan )

  4. 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
xoo | 수진