📄 onlineusermanager.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);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -