无法从servlet访问WEB-INF文件夹中的文件

时间:2016-04-13 12:34:54

标签: java servlets

我遇到了访问WebContent文件夹中的文件的问题(在这种情况下我需要访问WEB-INF文件夹)

这是我尝试访问WEB-INF文件夹的地方。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String dbPath = "/WEB-INF/musicDb.db";
    String xmlPath = "/WEB-INF/musicDb.xml";
    ServletContext context = null;
    context = getServletContext();  
    String test = context.getRealPath(xmlPath);

    File f = new File(test);
    if (f.exists()) {

    }
}

我已在WEB-INF文件夹中准备好musicDb.xml,但是,通过调试,我总是得到这条路径

{my local project path}/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/9321A1/WEB-INF/musicDb.xml

enter image description here

我怀疑它与WebContent文件夹没有包含在构建过​​程中有关。这可能是错的。

到目前为止,我发现的几乎所有教程/建议/文章都指向了使用

的方法
  

getServletContext()方法。getRealPath()

在我的情况下似乎不起作用

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我建议您将文件移动到/ WEB-INF / classes或将其打包在jar中并将该jar放在WEB-INF / lib中。使用任何一个getResourceAsSteam方法

将文件作为资源加载

请参阅此处:Best practices to store and access resource files in java web application以及正确答案:Reading Web Application Resources