日期:2014-05-18  浏览次数:20801 次

在线等!!显示在线用户的姓名,ID
不同用户登陆同一个页面,该页面显示现在正在浏览该页面的不同用户的姓名,ID!!用SESSION获取,只能显示自己登陆的姓名,ID!!!!该怎么做啊!!急急急急

------解决方案--------------------
截一段你看看

欢迎光临!<%=session.getAttribute("name")%>,您是第<%=session.getAttribute("userLogCount")%>次登录,您上次登录的时间是:<%=session.getAttribute("userLastLogTime")%>
------解决方案--------------------
写一个SESSION的监听器.MLDN上有一个视频教程你可以看一下.偶看过,不过已经忘了.自己感觉SESSION监听,除了能显示用户信息没有其他用处了.所以没认真看.楼主可以研究一下
------解决方案--------------------
显示在线人数,用户名不就可以了~~~~直接有JAVAVEAN做,网上有例子~~
自己再修改下就OK了~~
OnlineUser.java



import javax.servlet.http.*;
import java.util.*;

public class OnlineUser implements HttpSessionBindingListener {
public OnlineUser(){}

private Vector users=new Vector();

public int getCount(){ 
users.trimToSize(); 
return users.capacity(); 


public boolean existUser(String userName){ 
users.trimToSize(); 
boolean existUser=false; 
for (int i=0;i<users.capacity();i++ ){ 
if (userName.equals((String)users.get(i))){ 
existUser=true; 
break; 

}

return existUser; 


public boolean deleteUser(String userName) { 
users.trimToSize(); 
if(existUser(userName)){ 
int currUserIndex=-1; 
for(int i=0;i<users.capacity();i++){ 
if(userName.equals((String)users.get(i))){ 
currUserIndex=i; 
break; 


if (currUserIndex!=-1){ 
users.remove(currUserIndex); 
users.trimToSize(); 
return true; 

}  
return false; 


public Vector getOnLineUser() { 
return users; 


public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize(); 
if(!existUser(e.getName())){ 
users.add(e.getName()); 
System.out.print(e.getName()+"\t 登入到系统\t"+(new Date())); 
System.out.println("在线用户数为:"+getCount()); 
}
else 
System.out.println(e.getName()+"已经存在"); 
}

public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize(); 
String userName=e.getName(); 
deleteUser(userName); 
System.out.print(userName+"\t 退出系统\t"+(new Date())); 
System.out.println(" 在线用户数为:"+getCount()); 
}
}

online.jsp

<jsp:useBean id="onlineuser" class="dgeip.OnlineUser" scope="application"/> 
<%


session=request.getSession(false);
 



Vector vt=onlineuser.getOnLineUser(); 
Enumeration e = vt.elements(); 
%>
<table border=0 cellpadding=0 cellspacing=0><tr><td width=380 background="../images/address.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<fmt:message key="seat"/>
&nbsp;&nbsp;用户管理 >> 在线用户查看</td></tr></table>
<BR>
<table height="30" border="0" cellPadding=2 cellSpacing=1 class='bgcolor'>
<tr class='bg' bgcolor=#C2E9FA>
<td height=25 background='../images/main_28.gif'>当前在线用户数:&nbsp;<font color=red><B><%=onlineuser.getC