2

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

4

1 回答 1

6

这至少有 3 个原因:

  1. 从未创建会话。也听听sessionCreated()
  2. 你有点不耐烦了。会话销毁是延迟发生的,并且是间隔的。它不会立即发生。如果您在同一个会话中触发一个的请求,而它已经过期,那么sessionDestroyed()将被调用。或者,如果您有更多耐心,服务器将运行其低优先级计时器作业以获取所有过期会话。
  3. 您没有myapplication.SessionListener像您认为的那样在类路径中使用该类,也许实际上在类路径中的类没有 sysout 行。
于 2010-04-14T21:51:25.800 回答