如何处理同一个用户服务只有一人在线 如何处理同一个用户服务只有一人在线..急..网上很多说用HttpSessionBindingListener,和HttpSessionListener,这两个接口我在正常关闭浏览器的时候无法执行里面销毁的方法.请问这个问题怎么解决. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 销毁?你把该用户的标识remove不就可以了么? /** 所有的sessionId和用户信息的对应表 */ public static Hashtable<String, User> loginUsers = new Hashtable<String, User>(); /** 所有的用户id和sessionId的对应表 */ public static Hashtable<String, String> sessions = new Hashtable<String, String>(); /** 所有的用户id和上次操作时间的对应表 */ public static Hashtable<String, Long> lastOperation = new Hashtable<String, Long>(); /** 所有的sessionId和信息的对应表 */ public static Hashtable<String, String> messages = new Hashtable<String, String>();下面自己写吧。。 public static String login(String userName, String password, String ssoSessionId) {// String result = SSOConnection.login(userName, password, ssoSessionId);// return ""; } public static void logout(String sessionId, boolean completely) { User user = loginUsers.get(sessionId); if (user != null) { uncacheUser(sessionId); user = null; } } public static void cacheUser(User user,String sessionId) { String uid = user.getUid(); SignOn.checkSessionMap(uid); sessions.put(uid, sessionId); lastOperation.put(uid, System.currentTimeMillis()); loginUsers.put(sessionId, user); } public static void uncacheUser(String sessionId) { User user = loginUsers.get(sessionId); if (user != null) { sessions.remove(user.getUid()); lastOperation.remove(user.getUid()); loginUsers.remove(sessionId); } } public static User getUser(String sessionId) { User user = loginUsers.get(sessionId); return user; } public static boolean checkLogin(HttpServletRequest request, HttpServletResponse response) { boolean hasLogin = false;// String ssoSessionId = request.getHeader("SSOSESSIONID");// hasLogin = SignOn.checkLogin(request, response, ssoSessionId); if(getUser(request.getSession().getId())!=null) { hasLogin = true; } return hasLogin; } public static boolean checkLogin(HttpServletRequest request, HttpServletResponse response,String ssoSessionId) { boolean hasLogin = false; return hasLogin; } public static boolean checkSessionMap(String uid) { Boolean b = false; String sessionId = sessions.get(uid); if (sessionId != null) { Object obj = loginUsers.get(sessionId); if (obj != null) { SignOn.logout(sessionId, true); b = true; } } return b; }算了,还是大部分贴一下吧· spring_framework_3.2的Jar包问题 现在J2EE中的技术名词太多,分不清哪些属于哪个层次了,辨析一下 关于DispatchAction的问题 JAVA拦截求办法。 ireport javabean做数据源问题 请高手赐教! Resin如何对单个appliction进行restart/stop/start操作? 广州京华网络公司怎么样? !!!继续关注用Java抽取doc文件的内容!!!(jacob技术) 在线等!图文排版解决方案! 《j2ee tutorial》是本怎样的书,有中文版吗??? 有关request.getParameterValues的问题 推荐书籍
public static Hashtable<String, User> loginUsers = new Hashtable<String, User>();
/** 所有的用户id和sessionId的对应表 */
public static Hashtable<String, String> sessions = new Hashtable<String, String>();
/** 所有的用户id和上次操作时间的对应表 */
public static Hashtable<String, Long> lastOperation = new Hashtable<String, Long>();
/** 所有的sessionId和信息的对应表 */
public static Hashtable<String, String> messages = new Hashtable<String, String>();
下面自己写吧。。
{
// String result = SSOConnection.login(userName, password, ssoSessionId);
//
return "";
} public static void logout(String sessionId, boolean completely)
{
User user = loginUsers.get(sessionId);
if (user != null)
{
uncacheUser(sessionId);
user = null;
}
} public static void cacheUser(User user,String sessionId)
{
String uid = user.getUid();
SignOn.checkSessionMap(uid);
sessions.put(uid, sessionId);
lastOperation.put(uid, System.currentTimeMillis());
loginUsers.put(sessionId, user);
} public static void uncacheUser(String sessionId)
{
User user = loginUsers.get(sessionId);
if (user != null)
{
sessions.remove(user.getUid());
lastOperation.remove(user.getUid());
loginUsers.remove(sessionId);
}
} public static User getUser(String sessionId)
{
User user = loginUsers.get(sessionId);
return user;
} public static boolean checkLogin(HttpServletRequest request, HttpServletResponse response)
{
boolean hasLogin = false;
// String ssoSessionId = request.getHeader("SSOSESSIONID");
// hasLogin = SignOn.checkLogin(request, response, ssoSessionId);
if(getUser(request.getSession().getId())!=null)
{
hasLogin = true;
}
return hasLogin;
}
public static boolean checkLogin(HttpServletRequest request, HttpServletResponse response,String ssoSessionId)
{
boolean hasLogin = false;
return hasLogin;
}
public static boolean checkSessionMap(String uid)
{
Boolean b = false;
String sessionId = sessions.get(uid);
if (sessionId != null)
{
Object obj = loginUsers.get(sessionId);
if (obj != null)
{
SignOn.logout(sessionId, true);
b = true;
}
}
return b;
}
算了,还是大部分贴一下吧·