HttpSessionListener案例: 自定义HttpSession扫描器
如果一个HttpSession对象超过1分钟没有用了,主动干掉
注: 基础原则: 集合在遍历时,是不允许增删其中的元素的,
否则会抛java.util.ConcurrentModificationException异常
-----------------------------------------------------------------------------------------------------------
public class HttpSessionScannerListener implements HttpSessionListener,
ServletContextListener {
// 创建一个集合,存放所有的HttpSession对象
List<HttpSession> sessions = new ArrayList<HttpSession>();
// 创建一把锁,给集合sessions添加session的过程和遍历集合sessions(session过多,
// 遍历的时间长,有新的session加入)的过程加上同一把锁,保证不会被打扰
Object lock = new Object();
// 启动定时器
如果一个HttpSession对象超过1分钟没有用了,主动干掉
注: 基础原则: 集合在遍历时,是不允许增删其中的元素的,
否则会抛java.util.ConcurrentModificationException异常
-----------------------------------------------------------------------------------------------------------
public class HttpSessionScannerListener implements HttpSessionListener,
ServletContextListener {
// 创建一个集合,存放所有的HttpSession对象
List<HttpSession> sessions = new ArrayList<HttpSession>();
// 创建一把锁,给集合sessions添加session的过程和遍历集合sessions(session过多,
// 遍历的时间长,有新的session加入)的过程加上同一把锁,保证不会被打扰
Object lock = new Object();
// 启动定时器