在xml文件中需要對攔截器進行配置
<mvc:interceptors>
<mvc:interceptor>
<!-- 攔截的路徑 -->
<mvc:mapping path="/**"/>
<!-- 不攔截的路徑 -->
<mvc:exclude-mapping path="/login/tologin.do"/>
<bean class="netctoss.interceptor.Link"/>
</mvc:interceptor>
</mvc:interceptors>
在src下配置攔截器的Java類
public class SomeInterceptor implements HandlerInterceptor{
/*
* 最后執(zhí)行的方法,一般用于性能檢測
* @see org.springframework.web.servlet.HandlerInterceptor
#afterCompletion(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse,
java.lang.Object, java.lang.Exception)
*/
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
System.out.println("攔截器的afterCompletion方法。乐尊。。");
}
/*
* 二級控制器的方法執(zhí)行完畢后潘懊,但是在二級控制器將ModelAndView
* 對象返回給前端控制之前調(diào)用
*/
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
/*
* 可以在攔截器中修改二級控制器返回給前端控制器的ModelAndView
*/
//修改視圖名
//arg3.setViewName(viewName);
//修改數(shù)據(jù)
arg3.addObject("msg","hahahahaha");
System.out.println("攔截器的postHandle方法...");
}
/*
* 前端控制器在調(diào)用Controller(二級控制器)
* 的方法之前先執(zhí)行preHandle方法
* 若該方法返回false肛鹏,則表示中斷調(diào)用
* 否則繼續(xù)向下調(diào)用
* Object arg2是Controller處理方法(Method)對象
*/
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
// TODO Auto-generated method stub
System.out.println("攔截器的preHandle方法....");
return true;
}
}