CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

【急】聊天室-非正常退出后如何删除该用户???

楼主Shiro8558(行百里者半九十)2005-08-24 17:20:59 在 Java / Web 开发 提问

最近研究一个聊天室,用户用application存放,非正常(不是单击【离开】)退出后,退出的用户怎样从application中删除啊?  
  2、用户有没有其他存放方式,退出问题如何解决?  
   
  欢迎指导... 问题点数:60、回复次数:12Top

1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-24 17:44:32 得分 8

这个只能通过超时来删除用户。。  
  一般也就是这么做的,因为http是无状态的连接。Top

2 楼dreamsky15(云飞扬)回复于 2005-08-24 17:47:39 得分 8

通过监听器SessionListener   和   ContextListener实现.  
  自己搜索一下资料啦Top

3 楼Shiro8558(行百里者半九十)回复于 2005-08-24 17:49:46 得分 0

通过超时来删除用户。。         这个我想到了  
   
  但     session("Name")=null   了       我怎么在application中找到此用户啊??      
   
  Top

4 楼108041217(josso)回复于 2005-08-24 17:52:52 得分 2

gzTop

5 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-24 17:58:15 得分 8

你需要把用户放在application里面啊。。Top

6 楼Shiro8558(行百里者半九十)回复于 2005-08-24 18:32:35 得分 0

Vector   UserName=null;  
  UserName=   (Vector)application.getAttribute("UserName"+chat_room_id);  
  if(UserName==null)   {  
  UserName=   new   Vector(30,10);  
  }  
  if(regname!=null   )   {  
                      if(!UserName.contains(regname)){  
  UserName.addElement(regname);  
                      }  
                      session.putValue("Name",   regname);  
  }  
   
  application.setAttribute("UserName"+chat_room_id,UserName);  
   
  这是将用户存入application代码      
  》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》  
   
  Vector   UserName=null;  
  UserName=   (Vector)application.getAttribute("UserName"+chat_room_id);  
  UserName.remove(session.getValue("Name"));  
  session.removeAttribute("Name");  
  session.removeAttribute("MessageIndex");  
   
  这是正常退出代码  
  Top

7 楼CAYU(中原)回复于 2005-08-24 18:40:38 得分 6

写个cache   也可以,超时的自动就删除了.  
  Top

8 楼topil(认认真真学习,塌塌实实工作)回复于 2005-08-25 09:17:38 得分 28

想到一个办法,可以在DB中的用户表中加一个字段,保存用户上次下线的状态:  
  0   :用户登陆后正常退出  
  1   :未正常退出  
  用户登录后,修改这个字段为1,在点离开后修改一下其标准为0,每次登录时判断一下这个标志位来得到上次是否是正常退出的。  
   
  Top

9 楼topil(认认真真学习,塌塌实实工作)回复于 2005-08-25 09:19:53 得分 0

楼主的这个功能是不是要处理之前被管理员踢出去的用户,一段时间内不能再上线阿?Top

10 楼Shiro8558(行百里者半九十)回复于 2005-08-25 09:34:30 得分 0

谢谢   topil     但不是这个意思    
   
  application   存放所有用户         某一用户非法退出(不是被踢出)后     如何从application中删除该用户?Top

11 楼Shiro8558(行百里者半九十)回复于 2005-08-26 09:54:24 得分 0

大家继续啊    
   
  最好能详细点      
   
  有点混乱   谢谢参与Top

12 楼Shiro8558(行百里者半九十)回复于 2005-09-07 19:21:18 得分 0

谢谢   topil       按照你的想法仔细考虑了一下       基本解决了        
  揭帖Top

相关问题

  • 关于在Session_OnEnd()中把非正常退出的用户信息从数据库中删除的问题?
  • 关闭sql*plus窗口,是属于正常退出还是非正常退出
  • 如何得知非正常退出的用户信息
  • 如何检测用户非正常退出系统?
  • 关于用户非正常退出的问题!
  • tomcat非正常退出,就再也启动不起来了。
  • java程序的非正常退出的处理
  • 我如何记录一个非正常退出网站的人的信息
  • 一个因程序非正常退出而出现的问题,大虾们请进
  • [请教] KDE 安装过程中非正常退出后,再次进入出现的问题。高分。

关键词

  • 用户
  • vector
  • application
  • null
  • 删除
  • 退出
  • regname
  • 超时
  • username
  • 谢谢

得分解答快速导航

  • 帖主:Shiro8558
  • jFresH_MaN
  • dreamsky15
  • 108041217
  • jFresH_MaN
  • CAYU
  • topil

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo