`
lancijk
  • 浏览: 385075 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java Web 同一个用户名不能同时登陆的思路

    博客分类:
  • Java
阅读更多

 

 

情况之一:第一个用户等陆了,不允许第二个用户登录。
情况之二:第一个用户登录了,第二个用户登录挤掉第一个。
针对于第一种情况,可以在数据库设置用户状态,也可以在缓存,这个很容易实现,现在讨论浏览器异常关闭
的情况如何处理
可以考虑以下3个方法:
1。session失效,实现比较简单,也很保险,但缺点是实时性太差。
2。ajax轮询,也就是在客户端写个定时器,定时通过ajax方式发送一个信号到服务端,当服务端过了最大时间都没有接收到信号说明客户端已经关闭。
3。客户端用一个脚本监测是否关闭

window.onbeforeunload = function onunload_handler(){
 //浏览器关闭的时候会执行到此处
  //处理用户信息,使之变成离线状态
}


 

IE fireFox支持

 

关于第二种情况:可以通过管理session来实现,后一次登录的获得前一次登录的session,并主动让其失效,因为这个失效是瞬间的,所以前面登录的用户被挤掉了。

这个主要是做一个session监听,对所有有效的session进行管理,就是把他们保存在全局变量中,并让它跟当前的用户绑定在一起,下一次这个用户可以根据userId之类的信息找到上次登录但还没失效的session,并让其失效

分享到:
评论
2 楼 lancijk 2011-12-13  
jhkim 写道
你好,能有代码例子吗,谢谢


  这个demo 目前 自己没有 留哈. 当时是给公司做的. 其实这个 目前有更好的替代方案. 可以结合 memcached 来作. 这样不管是做没做分布式 都是OK的.  其实不需要想的太复杂.  就是 一个 sesion 全局保留就可以了.  再一个 就是浏览器异常关闭的时候 按照我给的方法处理就好.. 至于具体实现. 你可以有多种方法的. 不需要纠结用哪种.  而且我之前的做法对系统的性能损耗可能会大点.  所以推荐用缓存来坐.
1 楼 jhkim 2011-11-29  
你好,能有代码例子吗,谢谢

相关推荐

    java Web 同一个用户名同时登陆处理(全部五篇文档)

    java Web 同一个用户名不能同时登陆的思路 .doc java web开发一个帐号同一时间只能一个人登录 .doc java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能).doc java中如何实现同一账号不能同时登录....

    基于java web开发的mes生产制造系统

    基于java web开发的mes生产制造系统,该系统基于ssm框架开发,系统功能包括:系统管理、车间基础数据建模、计划管理、物料控制、生产执行、质量管理、库存管理、看板管理、数据分析等主体功能模块。广泛应用于汽车、...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    Java Web应用开发:个人信息修改.docx

    如果用户对象不为空,把对象中包含的用户各项信息显示在表单项目中(id不显示,用户名表单不允许修改,确认密码不显示)。 (3) 为CustomerDao类补充updateCustomer方法,该方法接收Customer对象作为参数,按照用户id...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java源码包4

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    java源码包3

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    而且,整个设计过程贯穿了MVC设计思路,是系统学习Java Web项目的入门案例之一。 《Java-Web应用开发基础》教学课件08课程设计实例全文共73页,当前为第6页。 8.3设 计 思 路 用户登录模块设计可划分为前台登录界面...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...

    java源码包2

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    Java Web应用开发:用户注册.docx

    (1) 如果表单有任意一项为空,提示表单不能为空,表单不提交。 (2) 如果两次输入的密码不同,提示两次密码不一致,表单不提交。 (3) 表单提交后,发现用户名已经被占用,提示用户换一个用户名,跳转回注册页面。 (4)...

    Java Web应用开发:用户登录.docx

    (2) 创建实体类Customer,该类的属性和tb_customer表字段对应,描述了会员的各项信息,还包含一个无参构造方法和一个有参构造方法,以及各项属性的get和set方法。 (3) 创建CustomerDao类,该类中包含对会员信息进行...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...

    基于JAVA web 的酒店管理系统的设计与实现,MySQL、MVC

    介绍思路 1 《酒店管理系统》 资源目录介绍 2 安装配置 1)前期准备 a、安装好MySQL数据库,用户名root,密码root b、安装配置java环境(JDK1.7+,当前JDK1.8.0_152) c、安装配置好Tomcat(Tomcat7+,当前...

    BookStore_base1:网上书店java web,无框架

    BookStore_base1网上书店java web,无框架基于MVC的分层设计思路。登陆,注册:利用ajax验证用户名是否存在,登陆验证码防止恶意注册,session中存储用户判断用户是否登陆,对servlet进行了优化,在我的账户可以退出...

    Java,使用Servlet、MySql、Html以及Cookie机制,实现简单的一定时间内免验证登录

    b、如果不一致,跳转到登陆页面 c、使用配置文件配置数据库的连接配置 制作三个页面 a、登录页面 b、登陆成功页面 c、登录失败页面 d、加入返回登录页面的时候超链接 制作1个servlet a、 loginServlet,响应登录请求...

    基于SpringBoot实现登录注册功能模块(完整代码,并且已经成功跑起来)

    创建Spring Boot项目:使用Spring Initializr创建一个新的Spring Boot项目,并添加相应的依赖,比如Spring Web、Spring Data JPA等。 编写实体类:根据数据库表结构,在Java中创建相应的实体类,用于映射数据库表。 ...

Global site tag (gtag.js) - Google Analytics