📄 serversession.java
字号:
package com.laoer.bbscs.servlet;
import java.util.*;
import javax.servlet.http.*;
import com.laoer.bbscs.sysinfo.*;
import org.apache.log4j.*;
public class ServerSession {
public static Hashtable sessionlist = new Hashtable();
static Logger logger = Logger.getLogger(ServerSession.class.getName());
public ServerSession() {
}
public synchronized static void checkSession() {
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
String key = "";
UserSession sessionInfo = null;
long activeTime = 0;
logger.info("清除之前 Session " + sessionlist.size() + " 个");
if (sessionlist.size() > 0) {
Enumeration e = sessionlist.keys();
while (e.hasMoreElements()) {
key = (String) e.nextElement();
sessionInfo = (UserSession) sessionlist.get(key);
activeTime = sessionInfo.nowtime;
if (activeTime <
(System.currentTimeMillis() - Sys.SYSINFO.SESSIONOVERTIME)) {
sessionlist.remove(key);
logger.info("清除Session:" + key);
}
}
}
logger.info("清除之后 Session " + sessionlist.size() + " 个");
}
}
public static UserSession getNewSession(String key,
HttpServletRequest request) {
UserSession aUserSession = new UserSession(key, request);
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
sessionlist.put(key, aUserSession);
/*
Util.log("�½�Session[KEY:" + key + "]");
String[] serverip = Sys.getServerIP();
for (int i = 0; i < serverip.length; i++) {
SessionClient aSessionClient = new SessionClient(serverip[i],
Sys.SYSINFO.PORT);
aSessionClient.sendUserSession(aUserSession);
}*/
}
return aUserSession;
}
public static UserSession getSession(String key, HttpServletRequest request) {
UserSession aUserSession = null;
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
aUserSession = (UserSession) sessionlist.get(key);
}
else {
aUserSession = new UserSession(key, request);
}
return aUserSession;
}
public static void upSession(UserSession aUserSession) {
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
aUserSession.upTime();
sessionlist.put(aUserSession.sesssionID, aUserSession);
String[] serverip = Sys.getServerIP();
for (int i = 0; i < serverip.length; i++) {
//Util.log("�½�Session[KEY:" + aUserSession.sesssionID + "]");
logger.info("发送Session[KEY:" + aUserSession.sesssionID + "]");
SessionClient aSessionClient = new SessionClient(serverip[i],
Sys.SYSINFO.PORT);
aSessionClient.sendUserSession(aUserSession);
}
}
}
public static void upMsg(UpMsg aUpMsg) {
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
String[] serverip = Sys.getServerIP();
for (int i = 0; i < serverip.length; i++) {
logger.info("发送更新信息");
SessionClient aSessionClient = new SessionClient(serverip[i],
Sys.SYSINFO.PORT);
aSessionClient.sendUpMsg(aUpMsg);
}
}
}
public static void removeSession(String key, HttpServletRequest request) {
if (Sys.SYSINFO.SINGLESERVER.equals("no")) {
sessionlist.remove(key);
}
else {
request.getSession().invalidate();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -