1.preHandle 方法,在请求被处理之前进行调用。
2.postHandle 方法,在请求被处理之后进行调用。
3.affterCompletion 方法,在请求结束之后才进行调用。
<span style="font-size:18px;">package com.lee.springmvc.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/***
* 设置拦截器(在 applicationContext-config.xml 中配置 注册到配置文件中)
* @author liyintao
*
*/
public class Test1Interceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
System.out.println("执行到了afterCompletion方法!");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
System.out.println("执行到了postHandle方法!");
//可以通过ModelAndView参数来改变现实的视图,或修改发放视图的方法。
arg3.addObject("errorMsg", "通过拦截器修改消息!");
}
//返回值:表示我们是否需要将房钱的请求拦截下来
//如果返回false,请求将被终止!不会到达controller中,也不会调用另外两个方法
//如果返回true,请求会被继续运行
//Object arg2 表示的是被拦截的请求的目标对象--(UsersController.java中的userList方法)
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
System.out.println("执行到了preHandle方法!");
return true;//暂时先改为true
}
}
</span>