SSM14 —— SpringMVC拦截器

https://www.bilibili.com/video/BV1WZ4y1P7Bp?p=107

1.1 拦截器的作用

在这里插入图片描述
被SpringMVC调用
拦截器作用:在访问目标资源方法时做相应的干预

1.2 拦截器和过滤器的区别

在这里插入图片描述

1.3 拦截器快速入门

在这里插入图片描述
在没有拦截器的情况下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 创建拦截器:实现HandlerInterceptor
    在这里插入图片描述

  2. 配置拦截器(已配置了其他的)
    在这里插入图片描述
    在这里插入图片描述

  3. 测试
    在这里插入图片描述
    没有输出说明没有这个页面没有成功返回
    在这里插入图片描述
    控制台只打印了"preHandle",因为preHandle()方法return false,那么后面的都不会执行
    执行顺序是preHandle()->目标方法(target)->postHandle()->afterCompletion()
    改为return true后:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. preHandler
    在这里插入图片描述
    if("param".equals("yes"))改为if("yes".equals(param))
    不带参数,跳到error.jsp:
    在这里插入图片描述
    带的参数不是yes:
    在这里插入图片描述
    带的参数是yes:
    在这里插入图片描述

  5. postHandler:
    在这里插入图片描述
    在这里插入图片描述
    过程:先到preHandler,然后到了Controller的show()
    在这里插入图片描述
    然后上图的modelAndView被传给了postHandler在这里插入图片描述

在这里插入图片描述

多个拦截器的情况:
在这里插入图片描述
执行顺序在于spring-mvc.xml中的拦截器配置顺序:
在这里插入图片描述

1.5 拦截器方法说明

在这里插入图片描述

1.7 案例-用户登录权限控制

在这里插入图片描述
看session中有没有user,有就不用管,没有就跳转到登录页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jdbcTemplate.queryForObject("select * from sys_user where username=? and password=?",new BeanPropertyRowMapper<User>(User.class),username,password);

在这里插入图片描述
但是配置的是拦截所有的资源,因此登录就算密码对了也会被拦截返回登录页面
在这里插入图片描述
在这里插入图片描述
可以改为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值