会话超时参数是否终止对象或对象是否保留在内存中



在我的Java项目web.xml中,会话超时参数设置为5分钟。5分钟后,所有会话对象杀死或保留内存?

我曾经有过同样的问题,所以我检查了tomcat源代码。我没有检查所有的东西,但我会尽可能多地检查。有一个StandardSession类,它有许多方法,其中两个方法与此相关。

  • 其中一个是expire(),它将isValid变量更新为false。
  • 有另一种方法recycle()清除所有属性并重置许多属性,如lastAccessedTime, maxInactiveInterval等。

现在我假设这些方法在会话超时时被调用。所以它不会杀死它们,而是回收它们。

我进入会话管理器ManagerBase,看看它是做什么的。每当出现新的请求时,就调用下面的方法(在此之前很少调用其他方法)。

/**
 * Get a session from the recycled ones or create a new empty one.
 * The PersistentManager manager does not need to create session data
 * because it reads it from the Store.
 */
@Override
public Session createEmptySession() {
    return (getNewSession());
}

相关内容

最新更新