1.session管理类
提供对session的增删改查功能。以及获取共有配置信息。
主要属性为存放session的ConcurrentHashMap(线程安全)
2.session对象
具体会话信息
主要属性有:会话key,最后使用时间,存放会话信息的ConcurrentHashMap
部分代码:
管理类:
package session;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class SessionPoolManager
{
//超时时间
private Long time;
private Map<String, Session> sessionPool = new ConcurrentHashMap<String, Session>();
public void addSession(String key, Session session)
{
sessionPool.put(key, session);
}
public void removeSession(String key)
{
sessionPool.remove(key);
}
public Session getSession(String key)
{
return sessionPool.get(key);
}
public void removeOverTimeSession()
{
Iterator ite = sessionPool.entrySet().iterator();
while (ite.hasNext())
{
Map.Entry entry = (Map.Entry)ite.next();
Session session = (Session)entry.getValue();
if (System.currentTimeMillis() - session.getLastUseTime() > time)
{
String key = (String)entry.getKey();
removeSession(key);
}
}
}
}
sesison类
public class Session
{
private String key;
private Map<String, Object> datas = new ConcurrentHashMap<String, Object>();
//最后使用的时间
private long lastUseTime;
public void setProperty(String str, Object obj)
{
datas.put(str, obj);
}
public Object getProperty(String str)
{
return datas.get(str);
}
public void clearProperty()
{
datas.clear();
}
get....set....
}
提供对session的增删改查功能。以及获取共有配置信息。
主要属性为存放session的ConcurrentHashMap(线程安全)
2.session对象
具体会话信息
主要属性有:会话key,最后使用时间,存放会话信息的ConcurrentHashMap
部分代码:
管理类:
package session;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class SessionPoolManager
{
//超时时间
private Long time;
private Map<String, Session> sessionPool = new ConcurrentHashMap<String, Session>();
public void addSession(String key, Session session)
{
sessionPool.put(key, session);
}
public void removeSession(String key)
{
sessionPool.remove(key);
}
public Session getSession(String key)
{
return sessionPool.get(key);
}
public void removeOverTimeSession()
{
Iterator ite = sessionPool.entrySet().iterator();
while (ite.hasNext())
{
Map.Entry entry = (Map.Entry)ite.next();
Session session = (Session)entry.getValue();
if (System.currentTimeMillis() - session.getLastUseTime() > time)
{
String key = (String)entry.getKey();
removeSession(key);
}
}
}
}
sesison类
public class Session
{
private String key;
private Map<String, Object> datas = new ConcurrentHashMap<String, Object>();
//最后使用的时间
private long lastUseTime;
public void setProperty(String str, Object obj)
{
datas.put(str, obj);
}
public Object getProperty(String str)
{
return datas.get(str);
}
public void clearProperty()
{
datas.clear();
}
get....set....
}