只在跳转页面时执行一次

思路:
有时候,在做一个登录功能时,登录的目的就是要在当前页面跳转到下一个页面,然后在下一个页面显示该登录用户的所需信息;就是这一个动作,有时候就想当用户登录成功时,在下一个页面有一个登录的提示弹窗;
而这一步非常的容易简单,只需要在登录页面上,在跳转页面的路径(url)上传送一个标识;然后在下一个页面接收该标识,对其进行判断,然后执行弹窗即可;
虽然这个提示登录成功的弹窗效果实现了,但是还存在着问题,就是在我不继续往下一个页面跳转的情况下,当我继续在该页面刷新时,这个弹窗会再次显示出来;然而,这并不是所想要的效果;
我们所想要的效果是,只在该用户登录时,第一次从登录页面跳转主页面时,才会执行该提示弹窗;
并且在之后的刷新过程中不会再触发该弹窗;
也就是说,除了登录时显示弹窗,其他时候都不会再次显现;
怎么样才能实现这个效果呢,其实逻辑原理以及方法都很简单;
逻辑:
从上一个跳转过来的页面中,修改地址栏,在路径后加上一个参数。在(下一个)要弹窗的页面中,判断这个参数是否存在。存在则调用弹窗方法。执行完后,修改地址栏(修改并不刷新),但并不做页面刷新的动作,这样,在之后的刷新中,都不会再次显示弹窗了。
跳转前的页面:
在这里插入图片描述
该处使用1当作标识符;
然后在Controller层接收该标识符,并将该标识符传送到需要跳转的页面;
然后在跳转后的页面中获取该标识符;
通过${requestScope.标识符名}进行获取
在这里插入图片描述
跳转后的页面:
在这里插入图片描述
在页面加载时,执行此判断,当判断为ture,执行弹窗,
然后获取当前的页面路径;由于这时获取到的路径依然是带有标识符的路径,
所以,我们需要将该路径进行截取;
使用substring(开始截取位置,结束截取位置)字符串; (位置是包头不包尾);
截取没有标识符的路径;
然后再将截取后的路径设置到当前页面上;
但不作刷新行为;
Window.history.pushState就是修改路径,但不作刷新的一个方法;
Window.history.oushState({},0,“放截取后的路径”);
这样就可以实现登录成功的提示弹窗只在第一次页面加载时,也就是每次登录进来主页面的时候执行;
之后的刷新都不会触发该弹窗;
获取本机IP地址的方法:
首先需要引用java提供的类;
分别是三个:
在这里插入图片描述
然后再调用类里面的方法;
·获取当前的设备名称以及IP地址;
在这里插入图片描述

·获取当前的设备名称并转换字符串;
在这里插入图片描述
·获取当前的IP地址并转换字符串;
在这里插入图片描述
·获取格式为0:0:0:0:0:0:0:1的IP;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值