session 取键值 package com.tocersoft.base.filter;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;import com.tocersoft.member.entity
package com.tocersoft.base.filter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import com.tocersoft.member.entity.Member; //session监听器. // // 在WEB容器的web.xml中添加本监听器的调用,具体格式如下:(其中的"[","]"分别用" <",">"替换) // // [listener][listener-class]com.tocersoft.base.filter.SessionListener[/listener-class][/listener] // // 其中“com.tocersoft.base.filter.SessionListener”根据类的实际位置定义 // public class SessionListener implements HttpSessionAttributeListener { // 定义监听的session属性名. public final static String LISTENER_NAME = "user"; // 定义存储客户登录session的集合. private static List sessions = new ArrayList(); // 加入session时的监听方法. public void attributeAdded(HttpSessionBindingEvent sbe) { if (LISTENER_NAME.equals(sbe.getName())) { Member member = (Member)sbe.getValue(); // 判断存入的对象是否包含在list中,如果已包含则不添加 // if(!getSessions().contains(member)){ // sessions.add(member); // } if(getSessions().size() == 0 ){ sessions.add(member); }else{ // 判断存入的对象是否包含在list中,如果已包含则不添加 boolean bl = true; for (int i = 0; i < getSessions().size(); i++) { if(getSessions().get(i).getId().equals(member.getId())){ bl = false; break; } } if(bl){ sessions.add(member); } } } } // session失效时的监听方法 public void attributeRemoved(HttpSessionBindingEvent sbe) { if (LISTENER_NAME.equals(sbe.getName())) { sessions.remove(sbe.getValue()); } } // session覆盖时的监听方法. public void attributeReplaced(HttpSessionBindingEvent sbe) { } // 返回客户登录session的集合. public static List getSessions() { return sessions; }