SpringMvc中的拦截器
1.拦截器的简单介绍
2.拦截器的两种实现方式
2.1实现接口HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("handle方法执行前。。。。");
return true;
//true:执行handler方法
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("handler方法执行后, 视图生成前。。。。");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("目标handler方法执行后,视图生成之后执行此方法");
}
}
2.2继承HandlerInterceptorAdapter
public class MyInterceptor2 extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("MyInterceptor2方法执行前。。。。");
return true;
//true:执行handler方法
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("MyInterceptor2方法执行后, 视图生成前。。。。");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("MyInterceptor2方法执行后,视图生成之后执行此方法");
}
}
3.配置文件中的内容
<mvc:interceptors>
<mvc:interceptor>
<!--拦截所有-->
<mvc:mapping path="/**"/>
<!--进行放行的页面-->
<mvc:exclude-mapping path="/user/login"/>
<!--设置实现哪一个拦截器-->
<bean class="org.example.springmvc.interceptor.ReigsterInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>