各位小伙伴

咱们继续学习新知识

今天要分享的就是

拦截器

不知道小伙伴们平时上网的时候有没有注意到,尤其是上网购物的时候,不登录账号,就无法访问一些功能页面,比如你不登录账号,就没法查看购物车里面有什么物品.这就是拦截器起到的作用.那么今天我们就来给之前的项目添加一个拦截器.

拦截器

拦截器的概念

SpringMVC 中的 Interceptor 拦截器的主要作用就是拦截用户的 url 请求,并在执行 handler 方法的前中后加入某些特殊请求,类似于 servlet 里面的过滤器.

开发拦截器

定义一个拦截类,实现 HandlerInterceptor 接口,这里面一共有三个方法,

preHandle 方法:

在 handler 方法执行之前,运行里面的代码,可以用于用户的登录验证.

postHandle 方法:

在 handler 方法执行中,返回 ModelAndView 之前运行里面的代码,可以向页面提供共用的数据.

afterCompletion 方法:

在 handler 方法执行之后,运行里面的代码,可以进行异常处理,计算执行时间,记录日志.

在 springmvc.xml 里面配置拦截器

运行一下,页面有点丑就不展示了,直接看后台控制台的输出内容,可以看出我们的三个方法的运行顺序,和我们之前说的是一样的.

下面我们来测试多个拦截器的运行效果,再编写一个拦截器,(其实就是之前的代码复制一下,改个名字.)

千万不要忘了要配置springMVC.xml

发布项目,查看控制台的输出内容

注意:

1)当 preHandler 方法返回 false 时,其余的的两个方法都不执行,而且 handler 也不会执行

2)拦截器里面的 preHandler ,postHandler 和 afterCompletion 方法是按顺序依次执行的

3)当有多个拦截器存在时,如果有任意一个拦截器的 preHandler 方法返回 false ,则剩下的都不执行

4)如果多个拦截器同时运行(preHandler方法返回true),那么 preHanlder 方法是按顺序执行,而其余两个方法(postHandler 和 afterCompletion)是倒序执行

5)拦截器的执行顺序是按照在 springmvc 配置文件中的位置来顺序执行的

拦截器实战

需求:

只有登陆的用户才有权限访问系统中的功能

思路:

1)在登陆成功后,将用户信息放入 session.

2)编写用户登录拦截器的代码,获取 session 中的 loginName,若 loginName 不为空则证明用户成功登陆,preHandle 方法返回 true ,否则返回 false.

在这里要注意一下,开放 login.do 的 url 访问权限,不然就没法验证用户登录,没法把用户信息保存到 session 中.

配置 springMVC.xml

除了登陆验证的 url 请求,其他 url 请求,在拦截器的 preHandler 方法里面判断 session 是否有用户信息,如果有,则放行通过,如果没有 ,跳转到登陆页面,提示用户登陆.

各位小伙伴

今天的分享就到这里了

拜拜

java 登录拦截器_springMVC 拦截器-用户登录拦截实战相关推荐

  1. html用户登录页面设计,简洁时尚的用户登录界面设计效果

    这是一款简洁时尚的用户登录界面设计效果.该用户登录效果使用CSS和JS来完成,它使用元素滑动效果来制作登录表单动画,字体效果时尚大方,是非常不错的用户登录界面UI设计效果. 使用方法 HTML结构 该 ...

  2. springboot的拦截器和限制单一用户登录

    因为项目使用是用户登录redis缓存一个token,所以当用户在a设备登录时,便缓存了tokenA,这时用户去b设备登录,新缓存了一个tokenB,如果用户使用a设备去请求,token已经失效,从而实 ...

  3. java拦截器_springMVC入门(八)------拦截器

    SSM框架是java开发最常用的框架组合,作为视图层的框架SPring MVC框架有着极其广泛的应用,很多的小可爱在Java学习的框架阶段存在着诸多的迷茫,今天小编将手把手的带领大家进行三大框架之一的 ...

  4. html登录验证功能,续:实现用户登录验证功能

    一.提纲 1.Previously前情提要 已经把Thymeleaf部署到项目中: 把前端开发的静态资源成功引入到项目中: 完成登录验证功能,登录成功跳转到success.html页面,登录失败跳转到 ...

  5. php mysql 登录注销_PHP与MYSQL实现用户登录注销

    因为最近才学习php与mysql,为了写留言板的注册,登录与注销功能,接触到php的session会话机制,想要记录下来. Session: 代表服务器与浏览器的一次会话过程(其本来的含义是指有始有终 ...

  6. linux 禁止其他用户登录,在Linux中如何禁止用户登录

    给user01用户设置密码,然后ssh登录测试一下: 输入密码之后,提示This account is current not available,然后连接就关闭了. 命令使用语法如下: 也可以手动修 ...

  7. php mysql ajax登录界面_PHP+jQuery+Ajax实现用户登录与退出

    本文使用Ajax无刷新登录和退出,从而提升了用户体验. 若用户为登录状态,则显示用户相关登录信息,否则显示登录表单. 用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录 ...

  8. uni 登录token方法_uni-app 中保持用户登录状态

    在应用中保持登录状态是一个应用常见的需求,本文简单介绍下在 uni-app 中如何保存用户登录状态. 简介 uni-app 中不支持读写 cookie,所以不能如传统的应用那样通过读取 cookie ...

  9. php用户登录注销,php开发中实现用户登录与注销的代码示例

    本篇文章给大家带来的内容是关于php实现用户登录与注销的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前虽然写过登录的功能,但是注销还没有认真的看过.特此记录 当点击登录 ...

  10. Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面

    场景 Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

最新文章

  1. 神经网络的叛离:32年前从心理学与生理学分离的瞬间
  2. Google Brain 团队的研究方法
  3. 函数进阶学习之二 声明 定义
  4. 最新版python学习_最全Python学习路线图【2020最新版】
  5. mobile cpu上禁用alpha test的相关总结
  6. Spark在Ambari集群环境的使用
  7. windows和Linux查看端口占用进程并关闭
  8. 精品网站 mysql,【网址导航系统】基于PHP+MYSQL开发的开源网站分类目录管理系统...
  9. 食物和计算机中一样的英语,关于电脑和食物的英语口语
  10. 【图像算法】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...
  11. javashop 发布开源放大镜HiZoom插件
  12. c++之QT软件封装(windows)
  13. 故宫商业大跃进 逐渐失控的IP洪流
  14. 无线通信网络学习之LTE网络架构篇(20141208)
  15. Python:re中的group方法简介
  16. 运放实现方波三角波发生器-总结报告
  17. 飞桨领航团西安回顾|技术干货大厂offer独家经验分享
  18. Android仿网络直播弹幕功能的实现
  19. 联想xiaoxin700-15isk黑苹果clover分享
  20. 通用mapper 根据条件修改、查询

热门文章

  1. linux中文本查找命令,Linux常用的文本查找命令 find
  2. xshell监听端口_监听端口修改_笨办法学Linux 远程访问 (原理、实践、记录与排错)-视频课程_Linux视频-51CTO学院...
  3. Dynamic Performance Tables not accessible,Automatic Statistics...
  4. [react] React的严格模式有什么用处?
  5. Taro+react开发(7)--控制跳转
  6. [html] html5的video如何附带字幕?
  7. [html] 你知道什么是反向链接吗?它有什么应用场景呢?
  8. [html] 如何在页面引用外部的html页面?
  9. [css] 如何让一个块元素绝对居中?
  10. [css] 如何解决css加载字体跨域的问题?