<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://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)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕亚洲综合小综合在线| 情侣视频精品免费的国产| 相泽亚洲一区中文字幕| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 深夜国产福利99亚洲视频| 亚洲一区AV无码少妇电影| 免费黄色app网站| 国产成人亚洲综合无| 国产午夜鲁丝片AV无码免费| 久久精品国产亚洲av瑜伽| 国产精品无码一区二区三区免费| 亚洲精品久久无码av片俺去也 | 国产a级特黄的片子视频免费| 国产亚洲Av综合人人澡精品| 国产福利免费观看| 猫咪www免费人成网站| 亚洲国产精品无码久久久久久曰 | 亚洲精品国产第一综合99久久| 成人性生交大片免费看午夜a| 亚洲色最新高清av网站| 国产免费拔擦拔擦8x| 4hu四虎免费影院www| 久久夜色精品国产亚洲| 99爱在线精品视频免费观看9| 亚洲av无码片区一区二区三区| 最近免费中文字幕大全视频| 精品亚洲国产成人av| 亚洲精品国偷自产在线| 99久久99久久精品免费看蜜桃| 亚洲伊人久久大香线蕉AV| 免费国产综合视频在线看| 东北美女野外bbwbbw免费| 久久亚洲AV成人无码电影| 成全影视免费观看大全二| h在线看免费视频网站男男| 亚洲国产精品久久久久久| 免费中文熟妇在线影片| caoporm碰最新免费公开视频| 亚洲第一成年网站大全亚洲| 暖暖免费高清日本中文| 久久免费香蕉视频|