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

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

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

    常言笑的家

    Spring, Hibernate, Struts, Ajax, RoR

    session listener的配置和使用

    session listener的配置和使用 

    在web.xml中增加listener的配置信息   
         <listener>
            <listener-class>
                com.SessionListener(實現(xiàn)session監(jiān)聽器接口的類的名字,包也要寫上)
            </listener-class>
        </listener>
        <listener>
            <listener-class>
                com.AnotherSessionListener(有多個session監(jiān)聽器的時候,加多個<listener>)
            </listener-class>
        </listener>

    在JDK1.5和1.6的javax.servlet.http包中,可以看到session的監(jiān)聽器接口有4個,

    分別是:HttpSessionListener

                  HttpSessionAttributeListener

                  HttpSessionBindingListener

                  HttpSessionActivationListener

    要使用這些session的監(jiān)聽器,必須建立一個實現(xiàn)這些監(jiān)聽器接口的類,并在web.xml中配置這個類或者在會捆綁到session中的對象中實現(xiàn)監(jiān)聽器接口。

    1.   HttpSessionListener :在WEB應(yīng)用中,當(dāng)一個session被創(chuàng)建或銷毀時啟用這個監(jiān)聽器。

           HttpSessionListener接口定義了兩個方法:void sessionCreated(HttpSessionEvent se)和void sessionDestroyed(HttpSessionEvent se),每個方法都接受一個HttpSessionEvent對象作為參數(shù)。(實現(xiàn)類要提供一個無參數(shù)的構(gòu)造函數(shù))

           官方英文說明:Implementations of this interface are notified of changes to the list of active sessions in a web application. To receive notification events, the implementation class must be configured in the deployment descriptor for the web application.

    package com;

    public class SessionListener  implements HttpSessionListenter {

               public SessionListener() { }; //無參構(gòu)造方法

               //當(dāng)session被創(chuàng)建時執(zhí)行這個方法

                public void sessionCreated(HttpSessionEvent event) {

                     //代碼  

                 } 

                //當(dāng)session被銷毀時執(zhí)行這個方法

                public void sessionDestoryed(HttpSessionEvent event) {

                     //代碼  

                } 

                .....................................................

    }

    2.   HttpSessionAttributeListener :在當(dāng)前的WEB應(yīng)用中,當(dāng)session的attribute被增加、移除或替換后啟用這個監(jiān)聽器。

           HttpSessionAttributeListener接口定義了三個方法:void attributeAdded(HttpSessionBindingEvent se) 、void attributeRemoved(HttpSessionBindingEvent se) 和 void attributeReplaced(HttpSessionBindingEvent se) ,每個方法都接受一個HttpSessionBindingEvent對象作為參數(shù)。

           官方英文說明:This listener interface can be implemented in order to get notifications of changes to the attribute lists of sessions within this web application.

           具體的實現(xiàn)類定義跟上邊的差不多,這里就只寫明接口定義的方法在什么情況下將會執(zhí)行,后面也將是這樣帶過。

           void attributeAdded(HttpSessionBindingEvent se) ; //當(dāng)一個attribute被增加到session后執(zhí)行這個方法

           void attributeRemoved(HttpSessionBindingEvent se);//當(dāng)一個attribute被從session中移除后執(zhí)行這個方法

           void attributeReplaced(HttpSessionBindingEvent se);//當(dāng)一個attribute中的值被替換后執(zhí)行這個方法

    注意上面兩個必須在web.xml中配置, 這是為了比較第三個監(jiān)聽器,因為你想使用第三個監(jiān)聽器,那你必須把它布置到準(zhǔn)備捆綁到session中的對象,這個對象必須是implements HttpSessionBindingListener

    3.    HttpSessionBindingListener:當(dāng)一個實現(xiàn)了該接口的對象被捆綁到session或從session中被解放的時候啟用這個監(jiān)聽器。(不明白的可以查考 類HttpSessionBindingEvent的說明 和HttpSession.setAttribute方法)

           HttpSessionBingdingListener口定義了兩個方法:void valueBound(HttpSessionBindingEvent event)
     和 void
    valueUnbound(HttpSessionBindingEvent event),每個方法都接受一個HttpSessionBindingEvent對象作為參數(shù)。

           官方英文說明:Causes an object to be notified when it is bound to or unbound from a session. The object is notified by an HttpSessionBindingEvent object. This may be as a result of a servlet programmer explicitly unbinding an attribute from a session, due to a session being invalidated, or due to a session timing out.

           //當(dāng)對象被捆綁到session中時執(zhí)行這個方法,像HttpSession.setAttribute("Aname",this_Object);這個方法執(zhí)行后,將調(diào)用下面的方法,并啟用HttpSessionAttributeListener 監(jiān)聽器
           void valueBound( HttpSessionBindingEvent arg2 )

           //當(dāng)對象從session中被解放時執(zhí)行這個方法,像HttpSession.setAttribute("Aname",this_Object);執(zhí)行后,再執(zhí)行HttpSession.setAttribute("Aname",another_Object);方法 或者HttpSession.setAttribute("Aname",“ ”);方法或者removeAttribute("Aname")后,將調(diào)用下面的方法,并啟用HttpSessionAttributeListener 監(jiān)聽器
           void valueUnbound( HttpSessionBindingEvent arg1 ) 


    4.    HttpSessionActivationListener :用于分布式服務(wù)中,當(dāng)會話被激活時調(diào)用相應(yīng)的事件。

           HttpSessionActivationListener接口定義了兩個方法:void sessionWillPassivate(HttpSessionEvent se) 和 void sessionDidActivate(HttpSessionEvent se),每個方法都接受一個HttpSessionEvent對象作為參數(shù)。

           官方英文說明:Objects that are bound to a session may listen to container events notifying them that sessions will be passivated and that session will be activated. A container that migrates session between VMs or persists sessions is required to notify all attributes bound to sessions implementing HttpSessionActivationListener. (說實話,這個我看不懂, 當(dāng)對象所捆綁著的session將被阻塞或激活的時候,捆綁著這個session的對象可能聽從通知它的容器事件。當(dāng)session在虛擬機之間、或在持久存儲設(shè)備中移動時,它就會被阻塞或者激活,容器被要求去通知所有捆綁著session并實現(xiàn)HttpSessionActivationListener接口的attribute對象。我是這樣翻譯的啦,看了的朋友如果覺得有問題,不吝指教)    

           //當(dāng)session即將被阻塞時執(zhí)行這個方法

           void sessionWillPassivate(HttpSessionEvent se)

           //當(dāng)session剛被激活時執(zhí)行這個方法

           void sessionDidActivate(HttpSessionEvent se)

     


     

    下面是HttpSessionEvent類的方法

    public HttpSession getSession()

    HttpSessionBindingEvent類的方法

    public HttpSession getSession()

    public java.lang.String getName();

    public java.lang.Object getValue()

    下面是兩個類都有的通過繼承得到的方法

    Methods inherited from class java.util.EventObject
    getSource, toString
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    posted on 2008-05-20 11:10 常言笑 閱讀(5288) 評論(0)  編輯  收藏 所屬分類: JAVA/J2EE

    My Links

    Blog Stats

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成年免费大片黄在线观看com| 婷婷亚洲综合五月天小说在线| 丝袜捆绑调教视频免费区| 在线观看91精品国产不卡免费| 亚洲欧美一区二区三区日产| 毛片大全免费观看| 亚洲AV色无码乱码在线观看| 午夜视频在线观看免费完整版| 亚洲精品永久在线观看| 成人永久免费高清| 男女猛烈无遮掩视频免费软件| 亚洲一区精品无码| 无码国产精品一区二区免费模式 | 亚洲精品亚洲人成在线观看下载| 亚洲AV无码精品国产成人| 国产乱人免费视频| xxxxxx日本处大片免费看| 久久精品国产亚洲AV网站 | 国产午夜亚洲精品国产| 日本免费人成视频播放| 一级毛片完整版免费播放一区| 77777亚洲午夜久久多人| 一区二区三区在线免费看| 激情综合亚洲色婷婷五月| 在线观看成人免费视频| a一级爱做片免费| 亚洲国产成人在线视频| 四虎影视永久免费观看网址| 中文字幕免费观看全部电影| 亚洲日韩乱码久久久久久| 日日夜夜精品免费视频| 十八禁视频在线观看免费无码无遮挡骂过| 亚洲色图国产精品| 国产免费一区二区三区VR| 免费无码又爽又刺激网站直播 | 成人免费淫片在线费观看| 一区二区免费国产在线观看| 亚洲黄色网址大全| 免费少妇a级毛片| 久久www免费人成看片| 鲁啊鲁在线视频免费播放|