求助:如何及时的知道聊天室的用户的变动情况? 做数据库的时候做个flag =1的时候在A =2的时候在B 判断一下了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用一个session保存当前在线用户的名单.在线用户的名单用ArrayList来保存,session就添加这个对象.所有处理都在登录成功后处理,具体就是:<% if(session.getAttributes("username")==null) { ArrayList usernamelist = new ArrayList(); String username = request.getParameter("username"); usernamelist.add(username); session.setAttributes("username",usernamelist); } else { ArrayList usernamelisttemp = (ArrayList)session.getAttributes("username"); String username = request.getParameter("username"); usernamelisttemp.add(username); session.setAttributes("username",usernamelisttemp); }%>然后在需要显示在线名单的时候调用这个session. 我用的是jsp做聊天室,聊天室没有和后台数据库打交道,大部分的功能是用javascript实现的,我现在用了一个synchronized (application){ //热门聊天室 Vector vecUserName0100=null; vecUserName0100= (Vector)application.getAttribute("UserName0100"); if(vecUserName0100==null) vecUserName0100= new Vector(1000,1000); if (!strName.equals("")) { vecUserName0100.addElement(strName); } String User=""; try { for(int i=0;i<vecUserName0100.size();i++) { User= (String)vecUserName0100.get(i); strUserList0100+="'"+User+" "+User+" 0 0 0 0 0 0',"; } strUserList0100=strUserList0100.substring(0,strUserList0100.length()-1); } catch (Exception e) { System.out.println("e0100="+e.toString()); } iUserCount0100=vecUserName0100.size(); application.setAttribute("UserName0100",vecUserName0100);}用了一个同步的思想再作,现在只能够统计共有多少人进来,但是用户什么时候走,比方说关掉ie页面,而不是点击退出按钮,我就无法判断了。感谢楼上的众位朋友的鼎力相助,我马上按照noratong(诺拉)朋友的思路用session再试一试。 怎样给jsp网站加上标签页logo 关于JSP文件上传 关于struts2整Spring3 以下方法得到的是什么????? 新手求助:请问out.close()与return的具体区别 一个网页中有一个框架页,当框架页执行刷新时,整个网页也刷新,如何做到谢谢, 通过jdbc读取5万条数据就不能成功了,有什么好的办法的。 看看这个错误! jsp提交给sevlet时候出了错,麻烦帮看看 請問jsp中如何判斷一個字符串中是否包含另一個字符串? 弱弱问:装Tomcat,怎么选JDK 在JSP页面上传文件字段不存在的原因
在线用户的名单用ArrayList来保存,session就添加这个对象.所有处理都在登录成功后处理,具体就是:
<%
if(session.getAttributes("username")==null)
{
ArrayList usernamelist = new ArrayList();
String username = request.getParameter("username");
usernamelist.add(username);
session.setAttributes("username",usernamelist);
}
else
{
ArrayList usernamelisttemp = (ArrayList)session.getAttributes("username");
String username = request.getParameter("username");
usernamelisttemp.add(username);
session.setAttributes("username",usernamelisttemp);
}
%>
然后在需要显示在线名单的时候调用这个session.
我现在用了一个
synchronized (application)
{
//热门聊天室
Vector vecUserName0100=null;
vecUserName0100= (Vector)application.getAttribute("UserName0100");
if(vecUserName0100==null) vecUserName0100= new Vector(1000,1000);
if (!strName.equals(""))
{
vecUserName0100.addElement(strName);
}
String User="";
try
{
for(int i=0;i<vecUserName0100.size();i++)
{
User= (String)vecUserName0100.get(i);
strUserList0100+="'"+User+" "+User+" 0 0 0 0 0 0',";
}
strUserList0100=strUserList0100.substring(0,strUserList0100.length()-1);
}
catch (Exception e)
{
System.out.println("e0100="+e.toString());
} iUserCount0100=vecUserName0100.size();
application.setAttribute("UserName0100",vecUserName0100);
}
用了一个同步的思想再作,现在只能够统计共有多少人进来,但是用户什么时候走,比方说关掉ie页面,而不是点击退出按钮,我就无法判断了。感谢楼上的众位朋友的鼎力相助,我马上按照noratong(诺拉)朋友的思路用session再试一试。