会话超时配置不起作用?

时间:2010-04-14 21:39:11

标签: java servlets session-timeout

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的新手。有什么建议吗?

1 个答案:

答案 0 :(得分:6)

这可能至少有3个原因:

  1. 从未创建过会话。聆听sessionCreated()
  2. 你有点不耐烦了。会话破坏懒洋洋地发生并且间隔时间。它不会立即发生 。如果您在同一会话中过期时发出请求,则会调用sessionDestroyed()。或者,如果您有一点耐心,服务器将运行其低prio计时器作业以收获所有过期的会话。
  3. 你没有像你认为的那样在类路径中使用myapplication.SessionListener类,也许实际上在类路径中的那个没有sysout行。