현재 온라인 사용자 목록 로깅

1929 단어 사용자

public class SessionListener implements HttpSessionListener,
	HttpSessionAttributeListener {

private static HashMap<String, SysUser> userMap = new HashMap<String, SysUser>();//   sessionID user   

private static HashMap<String, HttpSession> sessionMap = new HashMap<String, HttpSession>();//   sessionID

/**      HttpSessionListener    * */
/*   session  */
public void sessionCreated(HttpSessionEvent se) {}

/* session   ,          */
public void sessionDestroyed(HttpSessionEvent se) {
	userMap.remove(se.getSession().getId());
	sessionMap.remove(se.getSession().getId());
}

/**      HttpSessionAttributeListener    * */
/*   session.setAttribute( "user", "**** ") ,           */
public void attributeAdded(HttpSessionBindingEvent se) {
	if (se.getName().equals("user")) {
		userMap.put(se.getSession().getId(), (SysUser) se.getValue());
	}
}

/*   session.removeAttribute( "user", "**** ") ,          */
public void attributeRemoved(HttpSessionBindingEvent se) {
	if (se.getName().equals("user")) {
		LoginServlet.userLogout(se.getSession());
		userMap.remove(se.getSession().getId());
	}
}

/*      "user "                */
@SuppressWarnings("unchecked")
public void attributeReplaced(HttpSessionBindingEvent se) {}

/*        */
public static HashMap getList() {
	return userMap;
}

public int getOnlineNumber() {
	return userMap.size();
}

public synchronized static HashMap<String, HttpSession> getSessionMap() {
	return sessionMap;
}

public static HashMap<String, SysUser> getUserMap() {
	return userMap;
}

좋은 웹페이지 즐겨찾기