您的位置:首页 > 编程语言 > Java开发

javaweb实现单点登录和统计实时访问量的一点思路

2016-02-02 11:30 561 查看
相关参考资料:
http://blog.csdn.net/scu_bao/article/details/7269027 http://blog.csdn.net/ranmudaofa/article/details/39623901 http://uule.iteye.com/blog/824115
单点登录:

第一步:

用户登录时以用户唯一标记(且这个标记最好设置好后永远不会改变)为key,sessionID为value存储到一个全局的map中

用户主动退出或异地登陆被强制退出时

第二步:

当有另外的客户端以相同的账号登录时,以用户唯一的标记为key从map中获取之前登录的sessionID,然后获取session 执行session.invalidate() 手动销毁session,然后将之前的帐号信息(key,value)移除,替换最新的(其实和第一步是同一步)

第三步:

定义自己的拦截器判断session是否已经失效

主要判断两种情况

1. session到达设定的过期时间限制,session中存储数据被清空 即session.getattribute() 获取值为空

2. 主动调用session.invalidate() 销毁session,即session.getattribute()会报空指针

如果session已失效则重定向到错误页面提示

PS:

关于如何根据sessionID获取session

没找到相关的根据id获取session的接口,但是我们可以通过监听sessionlistener和全局静态map实现自己的SessionContext

创建自己的sessionlistener 有sessionDestroyed,sessionCreated两个方法监听session的创建和销毁

当创建session时,触发sessionCreated已sessionid为key,session为value存到全局静态map中,当销毁session时,触发sessionDestroyed移除相应的session,

当想通过sessionid获取session就可以从这个map中获取啦!(该方法同样适用于统计实时访问量)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: