Tomcat webapp 中原始资源的位置

And*_*der 4 java jsp tomcat servlets

我正在开发一个jsp + servlet应用程序,打包成war,部署到tomcat 8。

我知道WEB-INF是存储不被服务的文件的文件夹,仅在服务器端处理:如html或jsp片段等。我需要存储一些xml。Servlet 在处理请求时会读取这些 xml。

问题是:

我应该将这些 xml 存储在同一个 WEB-INF 文件夹中吗?或者有什么特别的地方吗?我不想做非常反模式的事情。

Wil*_*eez 7

如果您使用 Maven,则可以将 XML 文件放在 src/main/resources 中。当打包为 WAR 时,它们将被放置在 WAR 的 WEB-INF/classes 文件夹中,例如

src/main/resources/settings.xml
Run Code Online (Sandbox Code Playgroud)

将被打包到:

WEB-INF/classes/settings.xml
Run Code Online (Sandbox Code Playgroud)

这样你就可以使用例如读取文件:

MyServlet.class.getResourceAsStream("/settings.xml");
Run Code Online (Sandbox Code Playgroud)

一旦部署到 tomcat 并解压,您就可以根据需要编辑/更新 WEB-INF/classes 文件夹中的 settings.xml。请注意,/WEB-INF/classes 文件夹是类路径的根目录。