2012-11-17 31 views
0

下面的代碼sessionCreated在創建新會話時工作。但sessionDestroyed只在我們調用session.invalidate(); 我怎樣才能使它工作,在以下情況下 **當用戶關閉瀏覽器時,sessionlistner不起作用

1)用戶關閉瀏覽器

2)系統關機

3)會話超時**

import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
public class SesListener implements HttpSessionListener 
{ 
long sttime,endtime; 
public void sessionCreated(HttpSessionEvent se) 
{ 
    sttime=System.currentTimeMillis(); 
    HttpSession ses=se.getSession(); 
    ServletContext sc=ses.getServletContext(); 
    sc.log("session started at "+new Date()); 
    System.out.println("session started at "+new Date()); 
} 

public void sessionDestroyed(HttpSessionEvent se) 
{ 

    endtime=System.currentTimeMillis(); 
    HttpSession ses=se.getSession(); 
    ServletContext sc=ses.getServletContext(); 
    sc.log("session ended at "+new Date()); 
    System.out.println("session ended at "+new Date()); 
} 
} 

和我的.xml文件是

<listener> 
    <listener-class>SesListener</listener-class> 
</listener> 

回答

2

T這裏是沒有可靠的方式,我們可以聯繫服務器使會話無效, 例如:網絡丟失/功率損失:(無法聯繫到服務器的服務器)

但在瀏覽器關閉您可以捕捉用戶使用onunload事件的瀏覽器關閉事件並觸發註銷請求。會話超時聽者的sessionDestroyed期間

而且()將ThankYou..but而會話超時sessionDestroyed沒有調用執行

+0

。 無論如何iam工作在同一個 –

相關問題