springmvc拦截器

2023-05-16

一、springmvc拦截器只有springmvc有,Servlet的拦截器可以适用任何web项目

二、步骤

1、编写拦截器类,实现 HandlerInterceptor   接口;配置拦截器

2、案例


public class MyInterceptor implements HandlerInterceptor {
    /**
     * 预处理,controller方法执行前执行preHandle
     * @param request
     * @param response
     * @param handler
     * @return true:放行,执行下一个拦截器,如果没有,执行controller方法
     * @return false:不放行,不执行controller方法,直接执行页面方法afterCompletion
     * @throws Exception
     */
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("MyInterceptor执行了。。。。。。。。。");
        return true;
    }
}  

 


<!--    配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
<!--            要拦截的具体的方法-->
            <mvc:mapping path="/user/*"/>
<!--            不要拦截的具体的方法,只配置一个就可以-->
<!--            <mvc:exclude-mapping path=""/>-->
<!--            配置拦截器对象-->
            <bean class="cn.rzpt.interceptor.MyInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors>
  

return false的情况下:


    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        System.out.println("MyInterceptor执行了。。。。。。。。。");
//        return true;
        System.out.println("MyInterceptor执行了。。。。。。。。。");
        request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request,response);
        return false;
    }  

return true的情况下:


    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        System.out.println("MyInterceptor执行了。。。。。。。。。");
//        return true;
        System.out.println("MyInterceptor执行了。。。。。。。。。");
        request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request,response);
        return true;
    }  

输出结果很混乱:

拦截器也拦截,

MyInterceptor执行了。。。。。。。。。
/testInterceptor..........
success.jsp执行了。。。。。。。

但是最后跳转到错误页面

 

3、其它拦截器方法


/**
 * 后处理方法,controller执行完后执行的方法
 * @param request
 * @param response
 * @param handler
 * @param modelAndView
 * @throws Exception
 */
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("postHandle...............");
}  

MyInterceptor执行了。。。。。。。。。
/testInterceptor..........
postHandle...............
success.jsp执行了。。。。。。。

 


/**
 * success.jsp页面执行后,该方法执行
 * @param request
 * @param response
 * @param handler
 * @param ex
 * @throws Exception
 */
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("afterCompletion...........");
}  

MyInterceptor执行了。。。。。。。。。
/testInterceptor..........
postHandle...............
success.jsp执行了。。。。。。。
afterCompletion...........

 

4、多个拦截器配置与执行

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springmvc拦截器 的相关文章

随机推荐

  • mybatis多表操作

    xff08 1 xff09 多表查询 用户和账户 xff0c 要求 xff1a 一个用户可以有多个账户 xff0c 一个账户只能属于一个用户 xff08 多个账户也可以属于同一个用户 xff09 步骤 xff1a 1 建立两张表 xff1a
  • centos .sh文件无法执行

    到sh文件目录下执行 sed i s r sh
  • Maven学习笔记

    xff08 1 xff09 标准目录结构 src main java目录 xff1a 核心代码部分 src main resources xff1a 配置文件部分 src test java xff1a 测试代码部分 src test re
  • JSTL学习笔记

    xff08 1 xff09 概念 xff1a JavaServer Pages Tag Library jsp标准标签库 xff08 2 xff09 作用 xff1a 用于简化和替换jsp页面上的Java代码 xff08 3 xff09 使
  • idea 开启 tomcat 热部署 的 具体流程 和 使用方式

    idea 开启 tomcat 热部署 的 具体流程 和 使用方式 https www cnblogs com c2g5201314 p 12275243 html https blog csdn net qq 41288095 articl
  • java 判断字符串是否为空

    四种判断为空表示方式 xff1a 1 str 61 61 null 2 34 34 equals str 3 str length 61 61 0 4 str isEmpty 1234 代码中的四种不为空的运用 xff1a if str 6
  • springmvc返回值

    xff08 1 xff09 返回字符串 xff08 2 xff09 void xff08 3 xff09 返回ModelAndView 把user对象存储到mv对象中 xff0c 也会把user对象存入到request对象 mv addOb
  • springmvc上传下载

    xff08 1 xff09 form表单的enctype取值是 xff1a multipart form data xff0c method取值是 xff1a post xff0c 提供一个文件选择域 xff08 2 xff09 sprin
  • 数据库多表和范式

    xff08 1 xff09 一对多的关系 xff1a 一个部门可以有多个员工 xff0c 一个员工只能属于一个部门 在多的一方建立外键 xff0c 指向1的一方的主键 xff08 2 xff09 多对多关系 课程 学生 中间表 xff0c
  • springjdbc学习笔记

    xff08 1 xff09 导包 xff08 2 xff09 创建jdbcTemplate xff0c 依赖数据源DataSource 实例化的时候需要传入DataSource jdbcTemplate 61 new JdbcTemplat
  • MySQL多表操作

    xff08 1 xff09 笛卡尔积 xff1a 两个集合的所有组合 xff1a select from 表1 xff0c 表2 xff08 2 xff09 内连接查询 xff1a 隐式内连接 xff1a select from 表1 xf
  • MySQL事务

    xff08 1 xff09 概念 xff1a 一个包含多个步骤业务操作 xff0c 被事务管理 xff0c 这些操作具有统一性 xff08 要么成功 xff0c 要么失败 xff09 操作开启事务 xff08 start transacti
  • 软件产品化

    1 产品化定义 xff1a 软件产品化是指客户无需为软件添加或调整代码和语句即能完成软件的安装配置 应用初始化 系统管理 用户使用的全过程 xff0c 并且软件至少能满足80 以上的用户某一组应用需求 微软Office或杀毒软件就是产品化软
  • MySQL忘记root密码

    1 cmd gt net stop mysql 停止mysql服务 需要管理员运行该cmd 2 使用无验证方式启动mysql服务 xff1a mysqld skip grant tables 3 打开新的cmd窗口 直接输入mysql命令
  • 对象转型

    一 对象转型介绍 对象转型分为两种 xff1a 一种叫向上转型 父类对象的引用或者叫基类对象的引用指向子类对象 xff0c 这就是向上转型 xff0c 另一种叫向下转型 转型的意思是 xff1a 如把float类型转成int类型 xff0c
  • 获取文件的真实(服务器)路径

  • jQuery选择器

    1 基本选择器 标签选择器 xff08 元素选择器 xff09 xff0c 语法 xff1a 34 html标签名 34 id选择器 xff0c 语法 xff1a 34 id的属性值 34 类选择器 xff0c 语法 xff1a 34 cl
  • MySQL8:Unknown initial character set index ‘255‘ received from server. Initial client character 解决方法

    Unknown initial character set index 39 255 39 received from server Initial client character set can be forced via the 39
  • mybatis延迟加载

    1 什么是延迟加载 在使用时候才加载数据 xff0c 不用的时候不加载 2 关联对象是1时 xff0c 采用立即加载 xff1b 关联对象是多是 xff0c 采用延迟加载 3 一对一 xff08 一对多 xff09 延迟加载步骤及配置 xf
  • springmvc拦截器

    一 springmvc拦截器只有springmvc有 xff0c Servlet的拦截器可以适用任何web项目 二 步骤 1 编写拦截器类 xff0c 实现 HandlerInterceptor 接口 xff1b 配置拦截器 2 案例 pu