public class MyInterceptor implements HandlerInterceptor {
/**
* 执行时间:视图解析完毕
* 主要做一些监控的处理 比如 :异常 类是 try catch 后面的 finally
*/
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object obj, Exception ex)
throws Exception {
System.out.println("afterCompletion");
ex.printStackTrace();
}
/**
* 执行时机:control 执行完, 视图解析没有把页面解析成页面
* 可以对视图做统一修改 主要提现在model上面(可以统一为 某个视图 添加头和尾 )
*/
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object obj, ModelAndView mv) throws Exception {
System.out.println("postHandle....");
Map<String,Object> map=mv.getModel();
map.put("test", "append something");
}
/**前置拦截
* 执行时机:在control之前执行
* true:拦截通过 表示可以访问control
* false:不可以访问control
* Object: 访问的control 的类的对象
* 可以做权限 校验和控制
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
System.out.println("preHandle....");
return true;
}
}
在springmvc-servlet.xml文件中加入
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="cn.springmvc.interceptor.MyInterceptor">
</bean>
</mvc:interceptor>
</mvc:interceptors>