Tomcat 启动时缓存

Tomcat 启动时缓存

这是有关 Tomcat 行为的一个常见问题。

我知道 Tomcat 会将文件缓存到temp目录中,但我不清楚这种缓存是如何运作的。我之所以问这个问题,是因为我正在编写一些 Chef ServerSpec 集成测试,需要确保在启动时创建一些文件,而无需手动创建它们。

我的问题是Tomcat 启动服务器时会缓存文件吗?如果没有,那么它需要什么才能缓存文件?

答案1

缓存有多种形式。

对于静态文件(HTML、CSS 等),Tomcat 在启动时不会缓存任何文件。默认情况下,有一个静态文件缓存,其 TTL 相对较短,为 5 秒。文件在第一次访问时放置在缓存中。

类文件(包括 Servlet)在第一次访问时被加载到内存中。

JSP(默认情况下)转换为 Servlet,在首次访问时进行编译并加载到内存中。检查更改的频率取决于配置。

在某些配置中,Tomcat 将在 Web 应用程序启动时从档案中提取文件,并出于性能原因使用提取的版本。

在内部,Web 应用程序可以缓存,但 Tomcat 对此既不可见也不可控制。

相关内容