最佳实践-JavaEEWeb应用程序中的Txt文件位置

最佳实践-JavaEEWeb应用程序中的Txt文件位置,java,jakarta-ee,Java,Jakarta Ee,在我的JavaEEWeb应用程序中,我使用一些txt文件作为发送电子邮件的模板 关于将这些文件(WEB-INF,…)放在何处的最佳做法或标准是什么?在评论中提到,但这里是: 在WEB-INF中访问信息 WEB-INF目录不是的公共文档树的一部分 应用无法提供WEB-INF目录中包含的任何文件 通过容器直接发送到客户端。但是, WEB-INF目录对使用getResource的servlet代码可见 以及对ServletContext或 使用RequestDispatcher包含/转发。因此,如果

在我的JavaEEWeb应用程序中,我使用一些txt文件作为发送电子邮件的模板


关于将这些文件(WEB-INF,…)放在何处的最佳做法或标准是什么?

在评论中提到,但这里是:

在WEB-INF中访问信息

WEB-INF目录不是的公共文档树的一部分 应用无法提供WEB-INF目录中包含的任何文件 通过容器直接发送到客户端。但是, WEB-INF目录对使用getResource的servlet代码可见 以及对ServletContext或 使用RequestDispatcher包含/转发。因此,如果 应用程序开发人员需要从servlet代码访问应用程序 不应直接公开的特定配置信息 对于Web客户端,应用程序开发人员可以将其置于以下位置 目录


简单地说,
WEB-INF
中的任何内容都可以通过类路径供源代码使用,但外部世界无法通过WEB请求访问(无论如何都没有帮助)。既然您似乎不想公开提供,那么在
WEB-INF
下可能是最好的选择。您几乎可以按照自己的意愿组织该文件夹,但通常web应用程序会分别为编译的源代码和JAR指定
web-INF/classes/
web-INF/lib/

将它们存储到数据库中难道不是一个可行的选择吗?我宁愿将它们排除在webapp结构之外,以避免每次我必须更改电子邮件文本时进行部署。我宁愿避免使用数据库,因为访问它们会很繁重(连接到数据库、请求…),电子邮件结构不会更改这么多次,最多可能是每年1次,所以我想知道用于此的最佳实践。如果更改不太频繁,您可以使用缓存for db。很重吗?在应用程序上下文中缓存它们并在servlet GET上绑定重载将解决任何重载问题。如果是静态数据,我想web inf下的任何文件夹都可以。甚至拥有一个外部主目录(例如/home/username/webappName/resources)也是一个好方法。这始终取决于您更改它们的频率。由于WEB-INF受到保护(除了某些特定的例外),最好将它们放在那里,比如WEB-INF/templates/下。与内部jsp的WEB-INF/jsp类似。