今天搞了個javaweb在線人員名字顯示demo
單應(yīng)用程序,
只統(tǒng)計登錄人員的名字。
現(xiàn)在第三方統(tǒng)計很多如百度統(tǒng)計,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過期會把用戶給移出掉
具體調(diào)用方法
下面是我運行的一些流程和數(shù)據(jù)