Java+MySql+Servlet+Ajax实现单态登陆,说白了就是一个账号只能在一个浏览器中登陆。
来源:互联网 发布:天津数控编程招聘信息 编辑:程序博客网 时间:2024/05/17 06:03
最近公司比较闲,所以逛CSDN得时间也多了起来,这不,上午的时候看见有人说 怎么判断同名用户已经登陆 ,在看跟帖,发现这不就是单态登陆嘛,就是每个账号只能在一个浏览器中登陆(标签页不算),闲着也是闲着,干脆自己动手写一个吧。
先说说思路吧,最后贴上源代码下载路径。
其实这个需求实现起来非常简单,我们一层层慢慢刨下去。
第一个问题:我怎么知道该用户已经登陆过了?
这是第一步,其实很简单。我们写一个Map行不行?Key用来存放登陆用户的登陆名,Value用来存放与该登陆用户像匹配的Session,那么我们是不是只需要在这个map中get一下该登陆名,如果结果不为空就代表登陆了啦,如果为空就没有登陆。
第二个问题:比如账号A,被用户B登陆了,还没有注销下线,这时候用户C又来凑热闹将A登陆进去,这是时候我应该怎么样通知用户B,说你的账号已被别人登陆了。
这个应该怎么做?相信很多人都已经知道该怎么写了。对,你猜对了,我就是用Ajax异步请求来完成这个需求的,写上一个Servlet,在这个Servlet中得POST方法中写上验证该A账号是否已被再一次登陆的代码,如果已经被再次登陆,那么就返回normal,否则就返回您的账号已在另一个地方被登陆,然后通过Javascript的window.setInterval()每隔一段时间就异步访问该Servlet。
第三个问题:你说的我都懂,我也知道应该这么做,但是我该从哪里开始写呢?
其实很多人都存在这样的(学生),逻辑我都想明白了,但是我就是不知道该从哪个地方开始写代码?对与这种情况我的建议是:一层一层来,从简单到复杂,多个小功能合起来就一个大项目了,就比如这个单态登陆,那么我首先要实现的就是用户登陆,先别管什么单态不单态,先实现登陆再谈单态。那行我听你的,我就先实现了登陆在谈单态,那我登陆该从哪里写起呢?还是拿这个来说,登陆得连数据库吧?也有相关层次吧?首先把大概的层次搭上,比如类,方法,包之类的都建好,先别管代码,然后找到JDBC驱动,拷到Lib目录下,然后建上JSP页面,现在就可以开始写相关代码,在dao层写上查找用户的方法,在service层进行逻辑处理,如果用户和密码都对,那么就调转另一个页面,否则就给提示。然后加上单态也就一样了,慢慢来,一层一层刨。
PS:有人喜欢从业务层开始往里层写,也有人喜欢从持久层开始往外层写,这个看个人喜好,每个人都有自己写代码的方式,我不认为我的这种方式很好,反而我觉得很烂。
当把这两个逻辑搞懂之后,那么代码写起来就非常简单了,建议自己先根据这个思路写写,如果写不出来在看我写代码。
代码有详细注释,如果有不懂的可以问我。
下载地址:Java实现的单态登陆
- Java+MySql+Servlet+Ajax实现单态登陆,说白了就是一个账号只能在一个浏览器中登陆。
- app限制一个账号只能单设备登陆
- redis实现session共享,解决一个账号只能在一个终端登陆
- Java Servlet实现同一账号后登陆挤掉前一个登陆(类似QQ)
- Java Servlet实现同一账号后登陆挤掉前一个登陆(类似QQ)
- 限制一个账号同时只能在一处登陆
- java实现统一账户同一时间只能在一个地方登陆
- 利用Redis实现限制一个用户只能在一个地点登陆
- ajax+jsp+servlet+mysql实现登陆验证
- 一个servlet登陆过滤器
- 一个账号不能同时登陆
- 第十天、Servlet实现一个登陆界面
- java servlet 一个小案例--登陆跳转
- 判断用户是否在线及实现一个账号一个人登陆
- 一个用户只能在一部机里登陆一次
- 一个账号,防止多设备登陆
- ajax一个登陆的例子
- 如何控制一个用户只能一个人登陆
- Session 工作原理
- OpenCV2.3库翻译为Delphi--函数导入
- Lock与synchronized 的区别
- 使用GIT合并分支: git-merge and git-pull
- OpenCV2.3库翻译为Delphi--公共类型
- Java+MySql+Servlet+Ajax实现单态登陆,说白了就是一个账号只能在一个浏览器中登陆。
- android.graphics.Camera 仿3D效果
- Cookie读写demo
- OpenCV2.3翻译为Delphi--测试
- apache + svn 版本控制服务器创建
- TYPE_SCROLL_SENSITIVE和TYPE_SCROLL_INSENSITIVE的区别,CONCU_UPDATABLE的用法
- HowTo:Step-by-Step memcache安装及常见问题
- servlet的重定向和请求转发
- mac lion 下载