jsp会话监听

,建一个监听类,实现HttpSessionListener,HttpSessionAttributeListener接口

 1 package com.ifree.listener;
 2 
 3 import java.util.Date;
 4 import java.util.HashMap;
 5 import java.util.Map;
 6 
 7 import javax.servlet.http.HttpSession;
 8 import javax.servlet.http.HttpSessionAttributeListener;
 9 import javax.servlet.http.HttpSessionBindingEvent;
10 import javax.servlet.http.HttpSessionEvent;
11 import javax.servlet.http.HttpSessionListener;19 
20 public class HihSoftSessionListener implements HttpSessionListener,HttpSessionAttributeListener{
21     
22     /**
23      * 存放所有的session对象索引
24      */
25     public static final Map<String, HttpSession> allSessions=new HashMap<String,HttpSession>();
26     
27     /**
28      * Session创建时触发
29      */
30     public void sessionCreated(HttpSessionEvent se) {
31         
32     }
33     /**
34      * Session销毁时触发
35      */
36     public void sessionDestroyed(HttpSessionEvent se) {
37         if(allSessions.containsKey(se.getSession().getId())){39             allSessions.remove(se.getSession().getId());
40         }
41     }
42     /**
43      *    往session中绑定数据时触发
44      */
45     public void attributeAdded(HttpSessionBindingEvent se) {
46         if(se.getName()==Const.SESSION_USER){//当绑定数据的名称是Const.SESSION_USER时,表示登录56             allSessions.put(se.getSession().getId(), se.getSession());
57         }
58     }
59     /**
60      * 移除session中的绑定数据时触发 
61      */
62     public void attributeRemoved(HttpSessionBindingEvent se) {
63         if(se.getName()==Const.SESSION_USER){//当绑定数据的名称是Const.SESSION_USER时,表示退出登录65             allSessions.remove(se.getSession().getId());
66         }
67     }
68 
69     public void attributeReplaced(HttpSessionBindingEvent se) {
70         
71     }
72 
73 }

、在web.xml中引用这个监听类

1 <listener>
2         <listener-class>com.ifree.listener.HihSoftSessionListener</listener-class>
3 </listener>

这样就可以动会话进行监听了。

获取客户端IP地址的方法为:String ip=InetAddress.getLocalHost().getHostAddress();

原文地址:https://www.cnblogs.com/qneverever/p/4588605.html