当会话被销毁时,Tomcat会话中保存的值是否应设置为null? 或者它们会被自动销毁?
我们在tomcat文件夹中遇到多个.ser文件的问题。可能是因为我们在使用它们后没有将会话中保存的值设置为null吗?
答案 0 :(得分:2)
当会话被销毁时,Tomcat会话中保存的值是否应设置为null?或者它们会被自动销毁?
当会话失效时,其属性将只是取消引用。当它们未被任何其他对象引用时,它们将有资格获得GC。 GC运行后,它们将被销毁,是的。
我们在tomcat文件夹中遇到多个.ser文件的问题。可能是因为我们在使用它们后没有将会话中保存的值设置为null吗?
没有。听起来好像Tomcat在启动或关机期间崩溃了。我读过日志。
答案 1 :(得分:1)
当会话被销毁时,会话中的任何包含的对象也被销毁(即,如果会话是唯一一个持有它们的会话,则收集垃圾)。使用后不必将它们设置为null。
Tomcat具有在关机时序列化会话并尝试在启动时重新激活它们的功能,称为restart persistance。你指的是这个吗?如果它为您带来问题,可以取消激活(请参阅同一文档中标准管理器实现的属性)。