社区
Web 开发
帖子详情
请教怎样判断用户不能重复登陆????
是风啊a
2008-01-22 12:09:48
判断用户是否已登陆?还有就是如果有很多个用户,是不是要一个一个判断???
还是有更好的办法?最好有代码
...全文
659
25
打赏
收藏
请教怎样判断用户不能重复登陆????
判断用户是否已登陆?还有就是如果有很多个用户,是不是要一个一个判断??? 还是有更好的办法?最好有代码
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
believejjtrue
2011-10-24
打赏
举报
回复
最近学习的老师让我们做一个小的网站 遇到这样的问题了 之前用session做 觉得不够严谨
KK3K2005
2008-01-25
打赏
举报
回复
简单办法是 让后登陆的冲掉前面登陆的
建立一个 HashMap (登陆者名称,登陆者session)
当新的成功登陆就 检查 这个登陆名否有SESSION在了 存在就 清空这个SESSION(这样第一次登陆者SESSION就空了)
然后放置新的SESSION进去
session 结束事件中 添加 HASHMAP中的删除事件(要判断是否还是登陆状态)
cn12592
2008-01-25
打赏
举报
回复
DB加一个字段,记录用户登陆状态,起到用户登陆后锁定用户的作用.
是风啊a
2008-01-25
打赏
举报
回复
我试的是STRUTS,没整明白..
是风啊a
2008-01-24
打赏
举报
回复
kke_007 这位的似乎不太合适
olivesoup 冬瓜的应该可行,不过图片看不到了..
不是STRUTS的,正在试,呵
olivesoup
2008-01-24
打赏
举报
回复
给你的那个帖子里就是通过了的啊,当时图都发上去了,不通过我费那么大劲干嘛
olivesoup
2008-01-24
打赏
举报
回复
>在不同的机器上可行吗?
当然可行,当时重点就是解决这个问题
>断电的情况是否可行?
遗憾,当时没有测试断电情况,你可以试一下,有什么问题留言,我还会关注
Hao粑粑爱生活
2008-01-24
打赏
举报
回复
在数据库里多加一个字段记录登录时间,在每次登录的时候都会把登录时间update到数据库,同时也把它存在session里。然后再弄个过滤器,这个过滤器用来对比session里的时间跟数据库里的时间是否一致,如果不一致,就销毁session。这样,应该可以保证得了只有最后登录的用户才有权限吧?
是风啊a
2008-01-24
打赏
举报
回复
啊,我试了几次没通过...
在侠能做个通过的我看看吗?
olivesoup
2008-01-24
打赏
举报
回复
是不是struts的无所谓啊,只要你用servlet就行
欢迎测试,共同改进!
我也奇怪为什么图片看不到,我当时在公司发的,回家就看不到,现在也只能在公司的机器上看到,
难道我传的图片只有我一个人能看到??
感觉csdn并没有获取我的图片,只是拿了我的链接
真不知道这个论坛是怎么做的,bug一堆堆的
xho22
2008-01-23
打赏
举报
回复
在数据库表里面加一列,叫在线情况,1在线0不在线,登入的时候就修改这条
olivesoup
2008-01-23
打赏
举报
回复
我曾经回答过这个问题,你参考一下吧,里面的代码是现成的,用application解决的
http://topic.csdn.net/u/20071218/17/ba4861a2-94a7-46b2-9d85-b2d17008820e.html
kke_007
2008-01-23
打赏
举报
回复
ArrayList list = null;
//调用登陆方法
list = infoDao.infoSelect(name, pwd, actor);
if (list != null) {
//用for循环取list的值
for (int i = 0; i < list.size(); i++) {
//StuInfoBean来接收
StuInfoBean bean = (StuInfoBean) list.get(i);
//把姓名和角色放到session里去
se.setAttribute("name", bean.getStuName());
se.setAttribute("actor", bean.getActor());
se.setAttribute("actor",actor);
//判断list不等于null
if (actor.equals("学生")) {
//判断actor是学生
//用学生的状态来判断学生是否第一次进来
if (!bean.getComputer().equals("1")) {
//只要学生进来过就不给生进去!
out.print(
"<script>alert('你已经登录过一次想登录在请联系老师');window.location='login.jsp'</script>");
//给他跳到页面
// request.getRequestDispatcher("/login.jsp").forward(request, response);
//response.sendRedirect("/WebRoot/login.jsp");
// request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
//用学生的状态学生第一次进来
//调用更新状态
//获取计算机的IP地址
String Conputer = request.getRemoteHost();
//进行自动更新学生的状态
if (infoDao.infoUpdata(bean.getId(), Conputer)) {
request.getSession().setAttribute("id",
bean.getId() + "");
String ClassName = infoDao.getStuClass(
name);
getServletContext().setAttribute(
"className", ClassName);
// request.getRequestDispatcher(
// "/student/stuAns.jsp").forward(
// request, response);
response.sendRedirect(
"/WebRoot/student/stuAns.jsp");
}
是风啊a
2008-01-23
打赏
举报
回复
哦,是吧,有代码吗?看看在用户登陆时所做的??
fangshk2007
2008-01-23
打赏
举报
回复
先问一下,在数据库中没有一个属性判断表示用户是否在线吗?
就是没有那只能用 HttpServletSession 了,前面有几位答的很好
是风啊a
2008-01-23
打赏
举报
回复
在不同的机器上可行吗?断电的情况是否可行?
我研究一下明天,整明白了就结贴
kke_007和olivesoup 这两位的也许可行
kke_007能说下哪个是在类里,哪个是在JSP里的代码吗?
叶子哟
2008-01-22
打赏
举报
回复
嗯,用表来即时判断比较好,用户少的可以用session
另外,需要判断用户退出时的错误处理!!!
liushoucang
2008-01-22
打赏
举报
回复
zb_86 的方法不可用,因为SESSION是浏览器管理的,放置了SESSION只能是在当前打开的浏览器存在,如果另一个用户使用另一台计算机登陆,这时候捕获的SESSION为null,所以还是认为没有登陆.
我建议可以使用下面两种方法:
1,给数据库USERINFO表中加一个用户登陆状态的标记,登陆时判断一下该用户是否登陆
2,可以将用户登陆信息放在application中来判断是否已经登陆
zb_86
2008-01-22
打赏
举报
回复
用户登录后把用户信息放到session里,每次登录的时候判断session是否有,如果有,就说明用户重新登录
超时也是一样,超时了,session就清了,用户就不存在了
伪代码:
User user = (User)request.getSession().getArribute("user",user); //从session中取用户
request.getSession().setArribute("user",user); //把用户放到session中
是风啊a
2008-01-22
打赏
举报
回复
还有就是超时的话,这个用户是否还存在呢?
加载更多回复(4)
防止
用户
重复
登陆
系统
很多系统要求防止
用户
被
重复
登陆
,我们通常思维是当有
用户
重复
登陆
时要禁止他再
登陆
进去,提示他该账号已经有人在使用中.然而这样有个问题很难解决,就是系统很难实时捕捉到该账号是否还在使用中,如当
用户
非正常退出或者遇到停电等,系统只好等到Session超时后才能知道该账号已经下线.在Session超时之前这段时间之内没有人使用账号但也没人再能
登陆
上去,只能干等着了.我的解决方法是模仿QQ的被迫下线的功
妙用Cache检验
用户
是否
重复
登陆
网上看到可用Cache来
判断
用户
是否已
登陆
的方法,感觉还不错。实验后,特此分享代码原理比较简单:
判断
cache中是否已存在规定的客户
登陆
字符串,如果没有便添加,同时指定其在cache中的保存时间。
重复
登陆
时,便能通过
判断
cache值是否为空来
判断
用户
是否
重复
登陆
了。 //生成Key string sKey = TextBox1.Text +
ASP.NET防
用户
重复
登录的方法
本例完成的功能就是防止
用户
重复
登录!若
用户
已经登录,则当其再次登录时,弹出提示框后返回!实现思路:
用户
登录成功后,将
用户
登录信息存放到Hashtable类型的Application[“Online”]里面,其键值为SessionID,其Value值为
用户
ID;当
用户
注销时,调用Session.Abandon;在Global.asax里面的SessionEnd事件中,将
用户
ID从Hashtable
[java]Struts2防止
用户
重新
登陆
的实现
防止
重复
登陆
的思路就是:
判断
session中
用户
的值(比如;
用户
名、
用户
id等)是否存在,如果存在,则提示
用户
此账户已
登陆
,类似QQ的
重复
登陆
功能。 实现如下:(此类已经在项目中运行,代码拷贝至实际的项目,稍微修改即可) ①SessionListener,该listener实现 HttpSessionListener接口 import javax.servlet.http.*;
使用session监听器解决
用户
重复
登陆
问题
引用别人的回答:首先, 你在
登陆
的时候应该把
用户
名存入到session中去, 然后用Web自带框架中, 有一个HttpSessionListener接口, 还有HttpSessionAttributeListener接口, 他们两个有一些需要实现的方法 HttpSessionListener两个:sessionCreated, sessionDestroyed sessi...
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章