在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 的新手。请问有什么建议吗?
最佳答案
这至少有 3 个原因:
- session 从未创建过。还要监听
sessionCreated()
。 - 你有点不耐烦。 session 销毁是延迟且间隔发生的。它不会立即发生。如果您在同一 session 中触发新请求,而该 session 已过期,则将调用
sessionDestroyed()
。或者,如果您有更多的耐心,服务器将运行其低优先级计时器作业来获取所有过期的 session 。 - 您没有像您认为的那样在类路径中使用
myapplication.SessionListener
类,也许类路径中实际没有 sysout 行。
关于java - session 超时配置不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641251/