我正在开发一个jsp + servlet应用程序,打包到war,部署到tomcat 8。
我知道WEB-INF是用于存储不提供服务的文件的文件夹,仅在服务器端处理:如html或jsp片段等。 我需要存储一些xmls。 Servlet会在处理请求时读取这些xmls。
问题是:
我应该将这些xmls存储在同一个WEB-INF文件夹中吗?或者有一个特殊的地方吗?我不想做非常反模式。
答案 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