演示 拦截器的具体作用:
新建interceptor类 用于拦截:
public class Myinterceptor implements HandlerInterceptor {
//拦截器作用思想和aop相差无几 也是正常业务需要额外穿插一点实现功能
//同样 生效也需要在xml文件中注入bean,是mvc的东西所以 需要mvc标签
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("=======处理前=========");
return false;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
System.out.println("======处理中========");
}
//在dispatcherServlet处理后执行,做清理工作
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
System.out.println("======处理后========");
}
}
preHandle return true意味放行 继续执行下一个拦截器
false则相反。
@RestController
public class Test {
@GetMapping("/a1")
public String hello()
{
System.out.println("执行了 context=>");
return "成功显示!";
}
}
application.xml:
<!--关于拦截器的配置-->
<mvc:interceptors>
<mvc:interceptor>
<!--/** 包括路径及其子路径-->
<!--/admin/* 拦截的是/admin/add等等这种 , /admin/add/user不会被拦截-->
<!--/admin/** 拦截的是/admin/下的所有-->
<mvc:mapping path="/**"/>
<!--bean配置的就是拦截器-->
<bean class="com.interceptors.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
运行tomcat 输入url跳转 输出控制台显示:
return false: