2010-04-14 109 views
1

web.xml我有這個會話超時配置不起作用?

<session-config> 
    <session-timeout>2</session-timeout> 
</session-config> 

<listener> 
    <listener-class>myapplication.SessionListener</listener-class> 
</listener> 

SessionListener.java

public void sessionDestroyed (HttpSessionEvent event){  
    System.out.println("Visitor Removed!!"); 
} 

但似乎System.out.println("Visitor Removed!!")從來沒有被執行。我是Tomcat 6和JSP的新手。有什麼建議嗎?

回答

6

這個可以有至少3個原因:

  1. 會話從未創建過。同時收聽sessionCreated()
  2. 你有點不耐煩。會話破壞發生在懶惰和間歇。它不會發生立即。如果您在同一個會話中激活了新的請求,並且該請求已過期,則將調用sessionDestroyed()。或者,如果您有更多耐心,服務器將運行其低定時器作業來收割所有過期的會話。
  3. 您在類路徑中並未使用myapplication.SessionListener類,因爲您認爲您正在使用這個類,也許實際在類路徑中的那個類沒有sysout行。
+1

或4. System.out不會輸出到您認爲它的位置 – 2010-04-15 01:07:40

+0

檢查catalina中$ TOMCAT_HOME/logs下的tomcat日誌。 .log或localhost。 .log – 2010-04-15 04:44:45

+0

謝謝BalusC。應該是原因2:我沒有耐心。 – lonelyloner 2010-04-19 15:12:51