一 09
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package cn.org.jock.http.listener; import java.util.Hashtable; import java.util.Iterator; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /** * @author jock * */ public class SessionListener implements HttpSessionListener { // 集合对象,保存session 对象的引用 static Hashtable<String,HttpSession> ht = new Hashtable<String,HttpSession>(); // 实现HttpSessionListener接口,完成session创建事件控制 public void sessionCreated(HttpSessionEvent arg0) { HttpSession session = arg0.getSession(); ht.put(session.getId(), session); System.out.println("create session :" + session.getId()); } // 实现HttpSessionListener接口,完成session销毁事件控制 public void sessionDestroyed(HttpSessionEvent arg0) { HttpSession session = arg0.getSession(); System.out.println("destory session :" + session.getId()); ht.remove(session.getId()); } // 返回全部session对象集合 static public Iterator getSet() { return ht.values().iterator(); } // 依据session id返回指定的session对象 static public HttpSession getSession(String sessionId) { return (HttpSession) ht.get(sessionId); } } |
别忘了在web.xml里加上
<listener>
<listener-class>cn.org.jock.http.listener.SessionListener</listener-class>
</listener>
有了这个就可以方便的做很多事了,统计在线人数、在线列表、用户单一登陆等等,自己扩展吧。
Tags: jsp, 技巧, 源码
Leave a Reply
You must be logged in to post a comment.
近期评论