OnlineUserManager.java
资源名称:OA.rar [点击查看]
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:3k
源码类别:
OA系统
开发平台:
Java
- package com.gforce.currency;
- /**
- * <p>Title: 吉力科技办公自动化系统</p>
- * <p>Description: 吉力科技办公自动化系统</p>
- * <p>Copyright: 版权所有 2004 (c) 西安吉力科技发展有限公司 Copyright (c) 2004 GForce Sceince & Technology</p>
- * <p>Company: 西安吉力科技发展有限公司 (GForce Sceince & Technology)</p>
- * @author 马登军
- * @version 1.0
- */
- import java.util.*;
- import com.gforce.currency.*;
- import java.io.*;
- import javax.servlet.http.*;
- public class OnlineUserManager
- {
- private static OnlineUserManager instance; // 唯一实例
- private static Hashtable htOnlineUsersUsers = new Hashtable();
- /**
- * 获取连接池哈希表
- * @return 连接池哈希表
- */
- public static Hashtable getOnlineUsers()
- {
- Enumeration keys = htOnlineUsersUsers.keys();
- while(keys.hasMoreElements())
- {
- Object key = keys.nextElement();
- if (htOnlineUsersUsers.containsKey(key))
- {
- if(htOnlineUsersUsers.get(key).equals(null))
- {
- htOnlineUsersUsers.remove(key);
- }
- else
- {
- HttpSession cSession = ((HttpSession)htOnlineUsersUsers.get(key));
- try
- {
- if ( (new Date()).getTime() - cSession.getLastAccessedTime() > cSession.getMaxInactiveInterval() * 1000 - 2000)
- {
- htOnlineUsersUsers.remove(key);
- }
- }
- catch(IllegalStateException err)
- {
- if(err.getMessage().indexOf("Session already invalidated")>-1)
- {
- htOnlineUsersUsers.remove(key);
- }
- }
- }
- }
- }
- return htOnlineUsersUsers;
- }
- /**
- * 返回唯一实例.如果是第一次调用此方法,则创建实例
- * @return ConnectionPool 唯一实例
- */
- static synchronized public OnlineUserManager Instance()
- {
- if (instance == null)
- {
- instance = new OnlineUserManager();
- }
- return instance;
- }
- /**
- * 建构函数私有以防止其它对象创建本类实例
- */
- private OnlineUserManager()
- {
- }
- /**
- * 清除所有在线用户信息
- */
- public static void ClearAllUsers()
- {
- htOnlineUsersUsers.clear();
- }
- /**
- * 增加在线用户Session信息
- * @param hsSession HttpSession Session信息
- */
- public static void AddNewSession(HttpSession hsSession)
- {
- String strSessionID = hsSession.getId();
- if (htOnlineUsersUsers.isEmpty())
- {
- htOnlineUsersUsers.put(strSessionID, hsSession);
- return;
- }
- else
- {
- if (htOnlineUsersUsers.containsKey(strSessionID))
- {
- htOnlineUsersUsers.remove(hsSession.getId());
- htOnlineUsersUsers.put(strSessionID, hsSession);
- }
- else
- {
- htOnlineUsersUsers.put(strSessionID, hsSession);
- }
- }
- }
- }