<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 27,  comments - 14,  trackbacks - 0
    要有這么一個(gè)監(jiān)聽器,當(dāng)加入session時(shí)就可以觸發(fā)一個(gè)加入session事件,在session過期時(shí)就可以觸發(fā)一個(gè)刪除事件,那么我們的把要處理的東西加入到這兩個(gè)事件中就可以做很多于SESSION相關(guān)連的事。如在線用戶的管理,單點(diǎn)登陸等等。
    在J2EE中可以實(shí)現(xiàn)HttpSessionBindingListener接口,此接口有兩要實(shí)現(xiàn)的方法。
     void valueBound(HttpSessionBindingEvent event) 當(dāng)實(shí)現(xiàn)此接口的監(jiān)聽類和session綁定時(shí)觸發(fā)此事件。
    void valueUnbound(HttpSessionBindingEvent event) 當(dāng)session過期或?qū)崿F(xiàn)此接口的監(jiān)聽類卸裁時(shí)觸發(fā)此事件。

    下面是一個(gè)示例解決方案:可以把登陸用戶的信息記錄在緩沖池中,當(dāng)SESSION過期時(shí),用戶信息自動(dòng)刪除。

    一個(gè)用戶信息接口:
    public interface LoginUserMessage {}

    一個(gè)用戶緩沖池:
    public class LoginUserPool {
        
    private Map map = new HashMap();
        
    private static LoginUserPool loginUserPool = new LoginUserPool();
        
    private LoginUserPool(){}
        
    public static LoginUserPool getInstance() {
            
    return loginUserPool;
        }

        
    public void addLoginUserMessage(String sessionId,LoginUserMessage loginUserMessage){
           map.remove(sessionId);
           map.put(sessionId,loginUserMessage);
        }

        
    public LoginUserMessage removeLoginUserMessage(String sessionId){
            
    return  (LoginUserMessage) map.remove(sessionId);
        }

        
    public LoginUserMessage getLoginUserMessage(String sessionId){
            
    return (LoginUserMessage) map.get(sessionId);
        }

        
    public Map getLoginUserMessages(){
            
    return map;
        }

        
    public boolean isEmpty(){
            
    return  map.isEmpty();
        }

    }


    一個(gè)HttpSessionBindingListener接口的監(jiān)聽類:
    public class UserLoginListener implements HttpSessionBindingListener{
        
    private final Log logger = LogFactory.getLog(getClass());
        
    private String sessionId = null;
        
    private LoginUserMessage loginUserMessage = null;
        
    private LoginUserPool loginUserPool = LoginUserPool.getInstance();

        
    public LoginUserMessage getLoginUserMessage() {
            
    return loginUserMessage;
        }

        
    public void setLoginUserMessage(LoginUserMessage loginUserMessage) {
            
    this.loginUserMessage = loginUserMessage;
        }

        
    public String getSessionId() {
            
    return sessionId;
        }

        
    public void setSessionId(String sessionId) {
            
    this.sessionId = sessionId;
        }

        
    /**//* (non-Javadoc)
         * 
    @see javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent)
         
    */

        
    public void valueBound(HttpSessionBindingEvent event) {
            
    // TODO Auto-generated method stub
            if(this.getLoginUserMessage() != null){
                loginUserPool.addLoginUserMessage(
    this.getSessionId(),this.getLoginUserMessage());
                logger.info(
    "用戶信息加入緩存池成功");
            }

            
    this.setLoginUserMessage(null);
        }


        
    /**//* (non-Javadoc)
         * 
    @see javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent)
         
    */

        
    public void valueUnbound(HttpSessionBindingEvent event) {
            
    // TODO Auto-generated method stub
            if(!loginUserPool.isEmpty()){
                loginUserPool.removeLoginUserMessage(sessionId);
                logger.info(
    "用戶信息從緩存池中移除成功");
            }

        }


    }

    這樣子的話,當(dāng)在應(yīng)用中把userLoginListener加入到session中時(shí),就會自動(dòng)把用戶信息加入到緩沖池中了。
    如:
     session.setAttribute("userLoginListener",userLoginListener);



    (原創(chuàng),轉(zhuǎn)載請保留文章出處http://www.tkk7.com/bnlovebn/archive/2007/07/04/128006.html

    posted on 2007-07-12 17:11 Scott.Pan 閱讀(395) 評論(0)  編輯  收藏 所屬分類: 代碼收藏夾
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 美女免费精品高清毛片在线视| 四虎在线成人免费网站| 国产婷婷成人久久Av免费高清| 国产曰批免费视频播放免费s| 亚洲情XO亚洲色XO无码| 亚洲国产成人久久一区二区三区| 99久久国产免费中文无字幕| 国产午夜免费高清久久影院| 人人公开免费超级碰碰碰视频| 91情侣在线精品国产免费| 久久精品亚洲综合专区| 另类图片亚洲校园小说区| 国产免费人成在线视频| 亚洲欧美日韩中文字幕一区二区三区 | 免费一级毛片在级播放| 免费a级黄色毛片| 久久国产精品萌白酱免费| 老司机亚洲精品影视www| 亚洲AV成人一区二区三区观看| 91嫩草免费国产永久入口| 精品国产日韩亚洲一区在线| 免费无码又爽又刺激高潮的视频| 亚洲经典在线中文字幕| 9420免费高清在线视频| 亚洲沟沟美女亚洲沟沟| 免费大片黄手机在线观看| 在免费jizzjizz在线播| 亚洲三级高清免费| 久久久久国产精品免费免费搜索 | 日本黄页网址在线看免费不卡 | 久久久久久A亚洲欧洲AV冫| 在线精品一卡乱码免费| 中国一级特黄的片子免费 | 香港a毛片免费观看| 亚洲香蕉在线观看| 免费黄色毛片视频| 67194成手机免费观看| 91成人免费观看在线观看| 亚洲成年人免费网站| 岛国大片免费在线观看| 黄色免费网址在线观看|