Development/Java
Spring Framework's Interceptor Example
우™
2008. 2. 13. 16:39
웹 어플리케이션에서 각 페이지마다 세션체크를 하게 되는데 이럴 때 Spring Framework의 Interceptor를
이용하면 한번의 코딩으로 모든 페이지를 체크할 수 있게 된다.
InterceptorExample.java
xxx-servlet.xml
servlet을 셋팅는 XML에 안에 Controller를 셋팅하는 부분에서 (SimpleUrlHandlerMapping) interceptor
셋팅을 하면 이 bean안에 속한 Controller는 모두 interceptor를 거치게 된다.
이용하면 한번의 코딩으로 모든 페이지를 체크할 수 있게 된다.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.ModelAndViewDefiningException;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class InterceptorExample extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,
Object handler) throws Exception {
UserSession user = (UserSession) request.getSession().getAttribute("userSession");
if (user == null) {
String url = "/login";
throw new ModelAndViewDefiningException(new ModelAndView(url));
}
return true;
}
}
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.ModelAndViewDefiningException;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class InterceptorExample extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,
Object handler) throws Exception {
UserSession user = (UserSession) request.getSession().getAttribute("userSession");
if (user == null) {
String url = "/login";
throw new ModelAndViewDefiningException(new ModelAndView(url));
}
return true;
}
}
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="interceptorex"/>
</list>
</property>
</bean>
<bean id="interceptorex" class="InterceptorExample"/>
<property name="interceptors">
<list>
<ref bean="interceptorex"/>
</list>
</property>
</bean>
<bean id="interceptorex" class="InterceptorExample"/>
servlet을 셋팅는 XML에 안에 Controller를 셋팅하는 부분에서 (SimpleUrlHandlerMapping) interceptor
셋팅을 하면 이 bean안에 속한 Controller는 모두 interceptor를 거치게 된다.