java web单点登录异常情况处理

这篇博客探讨了在Java Web环境中,用户单点登录遇到的异常情况,如直接关闭浏览器、断网或浏览器崩溃导致用户无法正常登录的问题。作者提出三种解决方案:1) 使用beforeunload事件监听浏览器关闭,但因兼容性问题放弃;2) 设置"心跳信号",通过服务器响应判断用户状态,但可能增加服务器压力;3) 利用session的getLastAccessedTime()在服务器端判断操作类型,有效区分关闭与刷新、重定向。此外,还通过session监听器在session超时时清理loginUserMap,解决异常情况下的用户信息残留问题。
摘要由CSDN通过智能技术生成

     在之前的一篇博文《java web 用户单点登录的方案的基本实现》中,介绍了限制用户重复登录的思路和方案,但这种方案有一些异常情况会导致用户被”锁死“,下面分别介绍其处理方法。

    1.用户登录系统后并未点击安全退出按钮而是直接关闭浏览器,这样再次登录时,由于并未实施application map和session的清除工作,所以用户登录的信息还在loginUserMap中,再次登录时则提示已经登录。只有等session timeout 失效后才能登录,一般时间较长,十分影响用户体验。

    2.断网,浏览器崩溃等异常情况,出现这种情况,session和map也未及时销毁,所以再次登录也会出现重复登录的情况。<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值