问答详情
源自:5-1 统计在线用户及人数

直接在SessionListener中就能完成在线人数统计功能 为啥要用RequestListener??????

public class SessionListener implements HttpSessionListener {

private static ArrayList<User> userlist = UserList.getUserlist();

private static User user=null;

public void sessionCreated(HttpSessionEvent arg0) {

String sessionId = arg0.getSession().getId();

if (userlist != null) {

for (int i = 0; i < userlist.size(); i++) {

User u = userlist.get(i);

if (u.getSessionIdByString() == sessionId) {

return;

}

}

}


user = new User();

user.setSessionIdByString(sessionId);

userlist.add(user);

arg0.getSession().getServletContext().setAttribute("user", userlist);


}


public void sessionDestroyed(HttpSessionEvent arg0) {

userlist.remove(user);

arg0.getSession().getServletContext().setAttribute("user", userlist);

}


}

public class User {	private String sessionIdByString="";	public String getSessionIdByString() {		return sessionIdByString;	}	public void setSessionIdByString(String sessionIdByString) {		this.sessionIdByString = sessionIdByString;	}	}

package moedl;


import java.util.ArrayList;


public class UserList {

private static ArrayList<User> userlist = new ArrayList<User>();


public static ArrayList<User> getUserlist() {

return userlist;

}


// public static void setUserlist(ArrayList<User> userlist) {

// UserList.userlist = userlist;

// }

}


提问者:qq_我有一个方丈师兄_0 2018-08-03 22:11

个回答

  • Knight灬彩虹
    2018-08-03 23:01:36
    已采纳

    requestListener的实现是更进一步功能的实现。不仅可以看到在线用户,还可以看到在线用户的相关信息,比如定义中的IP

  • 慕莱坞245
    2019-08-15 10:28:19

    为了获取ip地址