session的创建与销毁问题

public class SessionListener implements HttpSessionListener

为什么SessionListener 执行创建session方法后立刻执行销毁session的方法???
[b]问题补充:[/b]
public class SessionListener implements HttpSessionListener {

public void sessionCreated(HttpSessionEvent evn) {
    System.out.print("add");
}

public void sessionDestroyed(HttpSessionEvent evn) {
    System.out.print("destroy");    }

}

add结束后立刻执行destroy
[b]问题补充:[/b]
过期时间设为30分钟,而且打印出的sessionid是同一个session的
[b]问题补充:[/b]
session是用户登陆时通过HttpSession session = request.getSession();获得的

感觉没什么问题,是不是你代码有地方调用session的失效方法

[color=blue]不是吧,怎么可能。再描述清楚点吧[/color]

不可能的,
这个销毁session可能是别的session过期导致的

因为整个应用的session的创建与销毁都是调用SessionListener 的相应方法

[color=blue]这很有可能是一个Session创建了,然后另外一个Session销毁了。

或者Session刚创建,就显式调用invalidate方法,或者Session的超时时间设置的比较短(不过是以分钟计的)。
[/color]

[color=blue]关于SessionListener的介绍,可以参见我的博客:[color]
[url]http://xiaolongfeixiang.iteye.com/blog/560800[/url]

[quote]public class SessionListener implements HttpSessionListener {

public void sessionCreated(HttpSessionEvent evn) {
System.out.print("add");
}

public void sessionDestroyed(HttpSessionEvent evn) {
System.out.print("destroy"); }
} [/quote]
这只是一个监听而已,在开始之前触发sessionCreated,结束之前触发sessionDestroyed。
这是一种常用的方式,JAVA也有现成的观察者模式。
http://tech.ddvip.com/2006-04/11438220601623.html
看看这个 虽然说是swing的 但是原理就是事件驱动编程 ,既然你涉及到监听了 就索性了解透彻点。
这个链接里的文章我力推,我从中受益匪浅

[color=blue]你是如何创建Session的,贴出来看看吧。[/color]