会话超时配置不起作用?

Dus*_*Sun 2 java servlets session-timeout

web.xml我有这个

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

 <listener>
  <listener-class>myapplication.SessionListener</listener-class>
 </listener>
Run Code Online (Sandbox Code Playgroud)

SessionListener.java我有

public void sessionDestroyed (HttpSessionEvent event){    
   System.out.println("Visitor Removed!!");
}
Run Code Online (Sandbox Code Playgroud)

但它似乎System.out.println("Visitor Removed!!")从未被执行过.我是Tomcat 6和JSP的新手.有什么建议吗?

Bal*_*usC 6

这可能至少有3个原因:

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