原来一直把用户信息保存在session中,后来发现如果这样做会很消耗内存,于是我设计了一个类,里面有个HashMap对象根据key=sessionid,value=用户信息 来保存用户信息。代码如下:
public class SessionManager {
private static SessionManager instance=new SessionManager();
private Map sessionMap=Collections.synchronizedMap(new HashMap());
private SessionManager(){
super();
}
public static SessionManager getInstance(){
return instance;
}
public Userinfo getUserinfo(String sessionid){
if(sessionMap.containsKey(sessionid))
return (Userinfo)sessionMap.get(sessionid);
else return null;
}
public void setUserinfo(String sessionid,Userinfo userinfo){
sessionMap.put(sessionid, userinfo);
}
public void removeSession(String sessionid){
sessionMap.remove(sessionid);
}}
现在的疑惑是private Map sessionMap=Collections.synchronizedMap(new HashMap());这样可以保证线程安全,但是也很消耗资源,不知道大家在项目中是怎么解决这个问题的。