Tomcat webapp中原始资源的位置

时间:2016-03-10 15:25:45

标签: java jsp tomcat servlets

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

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

问题是:

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

2 个答案:

答案 0 :(得分:2)

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

src/main/resources/settings.xml

将打包到:

WEB-INF/classes/settings.xml

这样你就可以使用例如:

来阅读文件
MyServlet.class.getResourceAsStream("/settings.xml");

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

答案 1 :(得分:0)

将它放在WEB-INF /中,并在ServletContext对象上使用getResourceAsStream()方法,例如。

servletContext.getResourceAsStream("/WEB-INF/myfile");

如何获得对ServletContext的引用取决于您的应用程序...您想从Servlet还是从JSP中执行此操作?

见这里:Howto load a resource from WEB-INF directory of a web archive