用户统计 lisener结合drp看看

算了,好人做到底,程序也给你吧 

package   com.test; 

 

import   javax.servlet.http.*; 

import   java.util.*; 

 

public   class   SessionListener   implements   HttpSessionListener,HttpSessionAttributeListener{ 

        private   static   HashMap   hUserName   =   new   HashMap();//保存sessionID和username的映射 

 

        /**以下是实现HttpSessionListener中的方法**/ 

        /*创建session时,什么都不做*/ 

        public   void   sessionCreated(HttpSessionEvent   se){ 

        } 

        /*session失效时,删除列表中用户信息*/ 

        public   void   sessionDestroyed(HttpSessionEvent   se){ 

                hUserName.remove(   se.getSession().getId()   ); 

        } 

        /**以下是实现HttpSessionAttributeListener中的方法**/ 

        /*调用session.setAttribute( "username ", "**** ")时,添加用户信息到列表中*/ 

        public   void   attributeAdded(HttpSessionBindingEvent   se){ 

                if(se.getName().equals( "username ")){ 

                        hUserName.put(se.getSession().getId(),se.getValue()); 

                }   

        } 

        /*调用session.removeAttribute( "username ", "**** ")时,删除列表中用户信息*/ 

        public   void   attributeRemoved(HttpSessionBindingEvent   se){ 

                if(se.getName().equals( "username ")){ 

                        if(hUserName.containsValue(se.getValue())){ 

                                Iterator   iter   =   hUserName.entrySet().iterator(); 

                                while   (iter.hasNext())   { 

                                        Map.Entry   entry   =   (Map.Entry)iter.next(); 

                                        Object   key   =   entry.getKey(); 

                                        Object   val   =   entry.getValue(); 

                                        if(   (   (String)val   ).equals(se.getValue())   ){ 

                                                hUserName.remove(key); 

                                        } 

                                } 

                        } 

                }   

        } 

        /*调用更改 "username "属性值时同时更改列表中用户信息*/ 

        public   void   attributeReplaced(HttpSessionBindingEvent   se){ 

                if(se.getName().equals( "username ")){ 

                        if(hUserName.containsValue(se.getValue())){ 

                                Iterator   iter   =   hUserName.entrySet().iterator(); 

                                while   (iter.hasNext())   { 

                                        Map.Entry   entry   =   (Map.Entry)iter.next(); 

                                        Object   key   =   entry.getKey(); 

                                        Object   val   =   entry.getValue(); 

                                        if(   (   (String)val   ).equals(se.getValue())   ){ 

                                                hUserName.remove(key); 

                                                hUserName.put(key,se.getValue()); 

                                        } 

                                } 

                        } 

                }   

        } 

        /*返回用户列表*/ 

        public   static   HashMap   getList(){ 

                return   hUserName; 

        } 

在WEB-INF下面的web.xml中配置监听 

        <listener> 

                <listener-class> com.test.SessionListener </listener-class> 

        </listener>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值