package com.rl.interceptor;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class MyInterceptor implements HandlerInterceptor {
/**
* 最终拦截的执行时期:视图解析器,解析页面完成以后
*/
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
//收集异常信息,监控信息,以便后期维护
System.out.println("最终拦截...");
}
/**
* 后置拦截执行时机,在controller执行完成,视图解析器之前
*
*/
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView mv) throws Exception {
System.out.println("后置拦截...");
Map<String, Object> map = mv.getModel();
map.put("test", "appending something...");
}
/**
* 前置拦截执行时机,在controller执行之前
* 返回值类型:Boolean类型,如果是false表示拦截,true表示执行
*/
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
System.out.println("前置拦截...");
return false;
}
}
当return值为false时,拦截器被阻塞,只会出现:前置拦截,将return改为:true拦截器才能显示form界面:
拦截器:
配置文件:
<!-- 配置拦截器 -->
<mvc:interceptors>
<!-- 拦截路径和范围(**表示所有) -->
<mvc:interceptor>
<mvc:mapping path="/test/**"/>
<bean class="com.rl.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>