2013년 12월 30일 월요일

Spring Exclude Interceptor

Interceptor와 Filter의 차이는?
Spring의 Interceptor와 Servlet의 Filter의 기능상의 차이는 없다. 지정된 URL이 호출되기 전에 실행된다는 것은 같다.
하지만 호출되는 시점에서 그 차이가 발생한다.

Spring의 DispatcherServlet을 기준으로 Spring 호출 전에 Filter가 호출되고, Interceptor는 Spring의 Controller가 호출되기 전에 실행된다.



Spring Intercepter을 적용하는 방법

HandlerInterceptorAdapter  Class을 상속받아 사용자 Interceptor을 만든다.

Override 메서드는 3가지가 있는데 그 기능은 아래와 같다.
  • preHandle - Controller 실행 요청전
  • postHandle - view(jsp)로 forward되기 전에
  • afterCompletion - 끝난뒤

Spring-Config에 설정
  1. mapping path을 지정하지 않는 경우- “LocaleChangeInterceptor” 처럼 - 모든 URL에 대하여 호출된다.
  2. 특정 URL에 대하여 제외하고 싶은 경우 “exclude-mapping”을 사용한다.
  3. 특정 URL에 대해서만 호출을 지정할수 있다.

<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptor>
   <mvc:mapping path="/**"/>
   <exclude-mapping path="/admin/**"/>
   <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
   <mvc:mapping path="/secure/*"/>
   <bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...