1.创建一个自定义的拦截器
(1) 实现HandlerInterceptor接口
public class interceptor1 implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
(2) 在springmvc.xml中配置
<mvc:interceptors>
<!--配置自定义的拦截器-->
<bean class="interceptor.interceptor1"></bean>
<!--配置LocaleChangeInterceptor-->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
</mvc:interceptors>
2. HandlerInterceptor接口的三个方法
(1) 执行顺序图
(2)
preHandle:该方法在目标方法之前被调用,若返回值为 true, 则继续调用后续的拦截器和目标方法 ,若返回值为 false, 则不会再调用后续的拦截器和目标方法可以用来做权限. 日志, 事务等
postHandle:调用目标方法之后, 但渲染视图之前,可以用来对请求域中的属性或视图做出修改
afterCompletion:渲染视图之后被调用,可以用来释放资源
3.配置拦截器作用的路径
<mvc:interceptor>
<mvc:mapping path="/person"/>
<bean class="interceptor.interceptor2"></bean>
</mvc:interceptor>