• springmvc19


    第一个拦截器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请求响应

  • 相关阅读:
    cf1058c 暴力
    cf1058b 点是否在一个矩形里
    cf1058E 思维 前缀处理 位运算
    Codeforces Round #622 (Div. 2)C(单调栈,DP)
    Codeforces Round #623 (Div. 1, based on VK Cup 2019-2020
    Atcoder Beginner Contest 156E(隔板法,组合数学)
    【PAT甲级】1117 Eddington Number (25分)
    【PAT甲级】1116 Come on! Let's C (20分)
    【PAT甲级】1115 Counting Nodes in a BST (30分)(二叉查找树)
    Codeforces Round #621 (Div. 1 + Div. 2)E(二分查找,枚举分界点,容斥原理)
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908594.html
Copyright © 2020-2023  润新知