zoukankan      html  css  js  c++  java
  • 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请求响应

  • 相关阅读:
    父亲节前参考四级考试
    rpm小解
    oracle忘记sys/system/scott用户的密码怎么办
    yum 小解
    linux下设置swap文件
    启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
    mysql 常用命令
    wget安装
    删除mysql
    什么是swap分区
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908594.html
Copyright © 2011-2022 走看看