zoukankan      html  css  js  c++  java
  • 关于同一用户不能同时登录问题的探讨(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上了啊,不需要积分的,有需要的看官,可以猛力的点击一下:下载

  • 相关阅读:
    使用vue.js 引用阿里图标 --无法显示(报错)
    thinkphp5.0如何隐藏index.php入口文件
    thinkphp5.0--编写api,返回json格式
    小程序滑动问题(如何让底层不会跟着滑动)
    thinkphp5.0验证的封装
    git--提交代码
    小程序图片上传
    SVG分组和引用
    总结React写参数的几种方式
    React中使用echarts
  • 原文地址:https://www.cnblogs.com/tv151579/p/3400510.html
Copyright © 2011-2022 走看看