• 关于同一用户不能同时登录问题的探讨(1/2)


    前言

      最近做项目的这块,客户要求是同一用户不能同时登录,对这个问题未加深刻考虑便爽快应许了。可后来就扒瞎了,正所谓外面豪气盖天,回家咬牙打滚,都怪自己开窍晚......当时想当然的是session放到application中,全局控制拉到,在登录和退出的时候进行修改,要是用户不点退出按钮,异常退出的话,再做个session监听也就拉到了呗!

      可是我错了,我抓心挠肝的真心错啦!这session的监听,destroy方法咋还等个30分钟才触发呢,真是服了气了!

    最近才有时间整理这些东西,顺便总结一下!

    正文

    先上大菜,理论的东西会在《关于同一用户不能同时登录问题的探讨(2/2)》写上,也没多少。

    一:设置web.xml中的Attribute监听(个人感觉Attribute监听比session监听更好用些,它监听的是Attribute的动作,类似是监听到了session在登录和退出操作中的动作,当然如果用session监听的话也是可以的,你要考虑登录,退出的操作,以及destroy的30分钟或者更长的滞后性)

    二:做一个只有登录后才能看到的公共页面jsp文件中,采用异步的方法访问control,采用几秒访问一次(setInterval或者递归的setTimeout),每次访问就设定一次session的有效时长,一旦异常退出或者退出,这个轮询就会断开,到时候会在短时间内做出响应,写到这,相信大家都明白了吧,也是取巧啊。

    咱这也是没法子呀,至今在网上没找到合适的解决方案,都是卡到了异常退出那了,还有说做浏览器监听的,嗯,在浏览器关闭前一刻发个请求,关了session,可是可是万恶的浏览器兼容问题呀,哪里容忍我们如此呢,浏览器监听这个法子不咋灵,不过如果浏览器固定的话,也是一个不错的解决办法呀!

    代码部分

    项目结构:

    代码我上传到csdn上了啊,不需要积分的,有需要的看官,可以猛力的点击一下:下载

  • 相关阅读:
    关于放入cookie中的中文取出后变乱码的问题及解决办法!
    用灌了google的颜色搜索,可以看看这个。
    趁准备换个工作的工夫,去天津走了一圈.
    python的面向对象学习分享
    Http Handler 介绍
    大型网站系统架构分析
    Http 请求处理流程
    uniapp nfc读写
    安卓的颜色透明度和html的不一样
    uniapp App上传文件
  • 原文地址:https://www.cnblogs.com/tv151579/p/3400510.html
Copyright © 2020-2023  润新知