<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(實現session監聽器接口的類的名字,包也要寫上)
            </listener-class>
        </listener>
        <listener>
            <listener-class>
                com.AnotherSessionListener(有多個session監聽器的時候,加多個<listener>)
            </listener-class>
        </listener>

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

    分別是:HttpSessionListener

                  HttpSessionAttributeListener

                  HttpSessionBindingListener

                  HttpSessionActivationListener

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

    1.   HttpSessionListener :在WEB應用中,當一個session被創建或銷毀時啟用這個監聽器。

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

           官方英文說明: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() { }; //無參構造方法

               //當session被創建時執行這個方法

                public void sessionCreated(HttpSessionEvent event) {

                     //代碼  

                 } 

                //當session被銷毀時執行這個方法

                public void sessionDestoryed(HttpSessionEvent event) {

                     //代碼  

                } 

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

    }

    2.   HttpSessionAttributeListener :在當前的WEB應用中,當session的attribute被增加、移除或替換后啟用這個監聽器。

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

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

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

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

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

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

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

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

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

           官方英文說明: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.

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

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


    4.    HttpSessionActivationListener :用于分布式服務中,當會話被激活時調用相應的事件。

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

           官方英文說明: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. (說實話,這個我看不懂, 當對象所捆綁著的session將被阻塞或激活的時候,捆綁著這個session的對象可能聽從通知它的容器事件。當session在虛擬機之間、或在持久存儲設備中移動時,它就會被阻塞或者激活,容器被要求去通知所有捆綁著session并實現HttpSessionActivationListener接口的attribute對象。我是這樣翻譯的啦,看了的朋友如果覺得有問題,不吝指教)    

           //當session即將被阻塞時執行這個方法

           void sessionWillPassivate(HttpSessionEvent se)

           //當session剛被激活時執行這個方法

           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 常言笑 閱讀(5286) 評論(0)  編輯  收藏 所屬分類: JAVA/J2EE

    My Links

    Blog Stats

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码久久精品成人| 免费国产一级特黄久久| 黄网站色视频免费看无下截| AA免费观看的1000部电影| 免费看片免费播放| 中文字幕乱码亚洲无线三区 | 成年18网站免费视频网站| 久久久久久亚洲精品成人| 亚洲人成电影网站色| 久久久久久久91精品免费观看| 亚洲视频免费在线播放| 91免费人成网站在线观看18| 亚洲欧洲精品一区二区三区| 亚洲AV无码男人的天堂| 国产免费av片在线播放| 亚洲国产成人手机在线电影bd| www免费黄色网| 无码一区二区三区AV免费| 亚洲综合无码一区二区痴汉| 在线免费视频一区| 久久精品蜜芽亚洲国产AV| 久久久久久精品免费免费自慰| 亚洲人成在线播放| 国产传媒在线观看视频免费观看| 午夜在线免费视频| 免费高清av一区二区三区| 亚洲高清毛片一区二区| 久久影视国产亚洲| 亚洲成AV人影片在线观看| 亚洲一区二区三区免费| 亚洲kkk4444在线观看| 国产精品自在自线免费观看| 亚洲伊人久久大香线蕉结合| 成人av免费电影| 一个人免费观看视频在线中文| 日本牲交大片免费观看| 一个人看的免费观看日本视频www| 亚洲精品国产精品乱码不99| 亚洲一区免费视频| 乱淫片免费影院观看| 亚洲综合激情视频|