第一个拦截器preHandle=true,第二个拦截器preHandle=true
第一个拦截器类
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("11111--MyInterceptor拦截器的preHandle()方法执行了!");
return true;
}
@Override
public void postHandle(......){
System.out.println("11111--MyInterceptor拦截器的postHandle()方法执行了!");
}
.....
1
2
3
4
5
6
7
8
9
10
11
12
第二个拦截器类
public class MyInterceptor2 implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("22222--MyInterceptor拦截器的preHandle()方法执行了!");
return true;
}
@Override
public void postHandle(......){
System.out.println("22222--MyInterceptor拦截器的postHandle()方法执行了!");
}
.....
配置文件中也要同时声明两个拦截器
<mvc:interceptors>
<!--声明一个拦截器-->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.zh.handler.MyInterceptor"/>
</mvc:interceptor>
<!--声明第二个拦截器-->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.zh.handler.MyInterceptor2"/>
</mvc:interceptor>
</mvc:interceptors>
运行结果如下
11111--MyInterceptor拦截器的preHandle()方法执行了!
22222--MyInterceptor拦截器的preHandle()方法执行了!
MyController控制器的doSome()方法执行!
22222--MyInterceptor拦截器的postHandle()方法执行了!
11111--MyInterceptor拦截器的postHandle()方法执行了!
22222--MyInterceptor拦截器的afterCompletion()方法执行了!
11111--MyInterceptor拦截器的afterCompletion()方法执行了!
第一个拦截器preHandle=true,第二个拦截器preHandle=false
执行结果为
11111--MyInterceptor拦截器的preHandle()方法执行了!
22222--MyInterceptor拦截器的preHandle()方法执行了!
11111--MyInterceptor拦截器的afterCompletion()方法执行了!
1
2
3
第一个拦截器preHandle=false,第二个拦截器preHandle=true
11111--MyInterceptor拦截器的preHandle()方法执行了!
1
拦截器和过滤器的区别,了解
1 过滤器是servlet中的对象,拦截器是框架中的对象
2 过滤器实现Filter接口,拦截器实现HandlerInterceptor
3 过滤器是用来设置request,response的参数,属性,侧重对数据过滤的
拦截器用来验证请求,能截断请求
4 过滤器是在拦截器之前先执行
5 过滤器是tomcat服务器创建的对象
拦截器是springmvc容器中创建的对象
6 过滤器是一个执行时间点
拦截器是三个执行时间点
7 过滤器可以处理jsp,js,html等
拦截器是侧重拦截对Controller的对象。如果你的请求不能被DispatcherServlet接收,这个请求 不会执行拦截器内容
8 拦截器拦截普通类方法执行,过滤器过滤servlet请求响应