<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
    要有這么一個監聽器,當加入session時就可以觸發一個加入session事件,在session過期時就可以觸發一個刪除事件,那么我們的把要處理的東西加入到這兩個事件中就可以做很多于SESSION相關連的事。如在線用戶的管理,單點登陸等等。
    在J2EE中可以實現HttpSessionBindingListener接口,此接口有兩要實現的方法。
     void valueBound(HttpSessionBindingEvent event) 當實現此接口的監聽類和session綁定時觸發此事件。
    void valueUnbound(HttpSessionBindingEvent event) 當session過期或實現此接口的監聽類卸裁時觸發此事件。

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

    一個用戶信息接口:
    public interface LoginUserMessage {}

    一個用戶緩沖池:
    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();
        }

    }


    一個HttpSessionBindingListener接口的監聽類:
    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(
    "用戶信息從緩存池中移除成功");
            }

        }


    }

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



    (原創,轉載請保留文章出處http://m.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)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 嫩草视频在线免费观看| baoyu777永久免费视频| 麻豆国产精品入口免费观看| 亚洲午夜精品一区二区| 一级毛片aaaaaa免费看| 亚洲AV无码一区二区二三区软件| a级毛片免费观看视频| 亚洲av无码精品网站| 无码精品一区二区三区免费视频| 亚洲av色福利天堂| 少妇太爽了在线观看免费视频| 老色鬼久久亚洲AV综合| 亚洲免费网站在线观看| 亚洲人成色777777老人头| 国产无遮挡又黄又爽免费视频| 粉色视频成年免费人15次| 亚洲精品亚洲人成在线观看下载| 人成免费在线视频| 亚洲成A∨人片在线观看不卡| 久久精品电影免费动漫| 亚洲三级在线免费观看| 日日AV拍夜夜添久久免费| 日本特黄特色AAA大片免费| 国产精品亚洲片在线| 亚洲美女免费视频| 日韩色视频一区二区三区亚洲| 久久夜色精品国产亚洲av| 无码国产精品一区二区免费式芒果 | 精品一区二区三区高清免费观看| 亚洲日韩精品射精日| 91网站免费观看| 青青草国产免费国产是公开| 亚洲AV无码乱码国产麻豆| 免费无码AV片在线观看软件| 无码的免费不卡毛片视频| 亚洲一区二区三区夜色| 在线免费观看国产视频| 久久久久免费精品国产| 亚洲人av高清无码| 亚洲av日韩av无码| 免费看国产一级片|