天天看點

線上使用者資訊統計&單使用者登入(update)

前言:

之前寫過一篇關于統計線上使用者及單使用者登入的文章,後來發現如果設定session逾時,則存在同一個浏覽器下不同使用者登入,session逾時後,登入使用者的Vector沒有做到相應更新。

解決方法:

在前一篇文章的基礎上做以下修改:

public class User{
    private String sessionId; //增加sessionId字段,存放sessionId

    ......提供set、get方法
}

public class UserList{
    private Vector<Userlogin> v1 = new Vector<Userlogin>(); //增加v1,存放sessionId相同的使用者資訊

    public Vector<Userlogin> IsExistSessionId(String sessionId) throws Exception { 
        // 增加IsExistSessionId方法,篩選出sessionId相同的使用者,根據sessionId篩選
    }
}

public class UserListener implements HttpSessionAttributeListener, ServletContextListener{
    public void attributeAdded(HttpSessionBindingEvent event) {
        //使用者資訊添加到Vector前,擷取sessionId增加到使用者資訊中
    }

    public void attributeRemoved(HttpSessionBindingEvent event) {
        //擷取sessionId,調用userList的IsExistSessionId方法,并從Vector中清除與之比對的sessionId使用者
        //注意:使用者退出時,不要操作session,直接從Vector中删除該使用者資訊即可
    }

    public void attributeReplaced(HttpSessionBindingEvent event) {
        //使用者資訊添加到Vector前,擷取sessionId增加到使用者資訊中
    }
}
           

繼續閱讀