以编程方式使用HttpSession. setMaxInactiveInterval(int seconds)或使用
<session-config>
<session-timeout>-1</session-timeout>
</session-config>?这会导致任何开销吗?
发布于 2014-10-21 09:05:48
是。可以使用setMaxInactiveInterval方法通过java或jsp页面以编程方式设置会话超时,
HttpSession.setMaxInactiveInterval(int秒)
在这里,int值(以秒为单位)指定了servlet容器将使此会话无效之前客户端请求之间的时间(以秒为单位)。
间隔值为零或更少表示会话不应超时。
但是,许多一般使用的HTTP服务器被配置为在一定时间的不活动之后放弃持久连接,以节省系统资源,通常不通知客户端。因此,保持连接蛋白的活力可能导致java.lang.OutOfMemoryError: GC overhead limit exceeded错误。
内存不足错误
更多开放的连接需要更多的内存和更多的请求访问您的服务器,并最终导致服务器崩溃。
发布于 2014-10-21 08:45:28
文档指出,用负数秒调用该方法将使会话永远不会超时。
开销取决于实现,但我认为(从Catalina的StandardSession的源代码中可以看到),它会导致比有限的会话时间更少的开销,因为服务器不需要在期满后进行所需的清理。
发布于 2014-10-21 08:46:38
通过配置文件是首选的,如果问题是是否在代码中使用配置文件或调用setMaxInactiveInterval(int秒),则可以在一个地方更改超时限制。
是的,我们可以通过配置设置设置无限的超时限制。
https://stackoverflow.com/questions/26482389
复制相似问题