⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serversession.java

📁 天乙代码src_531.rar 天乙代码src_531.rar 天乙代码src_531.rar 天乙代码src_531.rar
💻 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 + -