<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 閱讀(406) 評論(0)  編輯  收藏 所屬分類: 代碼收藏夾
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久不见久久见中文字幕免费| AV激情亚洲男人的天堂国语| 成在线人视频免费视频| 国产成人免费a在线视频色戒| 亚洲人成人无码.www石榴| 搡女人免费视频大全| 亚洲精品无码久久久久A片苍井空| 国产a视频精品免费观看| 亚洲天堂中文字幕在线观看| 国产成人免费午夜在线观看| 18gay台湾男同亚洲男同| 最近高清中文字幕无吗免费看| 亚洲国产精品一区二区久| 免费在线观看的网站| 亚洲AV日韩AV永久无码色欲| 日本视频免费在线| 日亚毛片免费乱码不卡一区| 中国亚洲女人69内射少妇| 久久精品乱子伦免费| 亚洲一区电影在线观看| 免费激情视频网站| 一级毛片免费在线| 亚洲欧洲日韩不卡| 国语成本人片免费av无码| 美女扒开尿口给男人爽免费视频| 久久久久亚洲精品中文字幕| 久久免费福利视频| 精品亚洲AV无码一区二区三区 | 污视频网站在线免费看| 成人亚洲性情网站WWW在线观看 | 黄色网址免费大全| 亚洲avav天堂av在线网毛片| 亚洲一区二区三区在线观看精品中文 | 亚洲精品少妇30p| 亚州免费一级毛片| 美女又黄又免费的视频| 久久亚洲精品AB无码播放| 成人黄动漫画免费网站视频 | 91大神在线免费观看| 亚洲av日韩aⅴ无码色老头| 国产亚洲高清不卡在线观看|