在线用户列表UserList.java:
package edu.action.user;
import java.util.Enumeration;
import java.util.Vector;
import edu.vo.UserVO;
/**
* 文件名称: UserList.java
* 编写人: yh.zeng
* 编写时间: 17-1-5 下午7:48
* 文件描述: 已登录的用户列表(在线用户列表)
*/
public class UserList
{
private static UserList userList = new UserList();
private Vector<UserVO> v = null;
private UserList(){
v = new Vector<UserVO>();
}
public static UserList getInstance(){
return userList;
}
public void addUser(UserVO user){
if(user != null && !v.contains(user)){
v.add(user);
}
}
public void removeUser(UserVO user){
if(user != null){
v.remove(user);
}
}
public Enumeration<UserVO> getUserList(){
return v.elements();
}
public int getUserCount(){
return v.size();
}
}
用户信息UserVO.java:
package edu.vo;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import edu.action.user.UserList;
/**
*
* @author yh.zeng
* 文件描述: 1)往Session中存放Users对象,则自动往UserList用户列表中添加该用户
* 2)Session中移除Users对象,则自动从UserList用户列表中移除该用户
*/
public class UserVO implements java.io.Serializable, HttpSessionBindingListener {
private static final long serialVersionUID = 7132790140796457462L;
// Fields
private Integer id;
private String username;
private String password;
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {
UserList.getInstance().addUser(this);
}
@Override
public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {
UserList.getInstance().removeUser(this);
}
}
接着,用户登陆的Action,登陆成功之后,添加以下代码:
session.setAttribute("user", uservo);