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();

你可能感兴趣的:(jsp)