今天搞了个javaweb在线人员名字显示demo
单应用程序,
只统计登录人员的名字。
现在第三方统计很多如百度统计,cnzz 等,
如不是需要具体到某个人的话可以考虑用这个
好了废话不多说直接上代码了
public class BindSession implements HttpSessionBindingListener {
private String username;
public BindSession(String username) {
this.username = username;
}
public void valueBound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
// String name=(String)session.getAttribute("name");
ServletContext application = session.getServletContext();
// 把用户名放入在线列表
List onlineUserList = (List) application.getAttribute("onlineUserList");
// 第一次使用前,需要初始化
if (onlineUserList == null) {
onlineUserList = new ArrayList();
application.setAttribute("onlineUserList", onlineUserList);
}
onlineUserList.add(this.username);
System.out.println("valueBound: .........." + onlineUserList.size());
}
public void valueUnbound(HttpSessionBindingEvent event) {
HttpSession session = event.getSession();
// String name=(String)session.getAttribute("name");
ServletContext application = session.getServletContext();
// 从在线列表中删除用户名
List onlineUserList = (List) application.getAttribute("onlineUserList");
onlineUserList.remove(this.username);
System.out.println(this.username + "退出。");
}
}
valueBound 登录后把用户加到session
valueUnbound 退出或者session过期会把用户给移出掉
具体调用方法
下面是我运行的一些流程和数据