代码之家  ›  专栏  ›  技术社区  ›  Michael Wiles

如何从WEB存档的WEB-INF目录加载资源

  •  58
  • Michael Wiles  · 技术社区  · 17 年前

    我有一个网络存档,其中一个文件放在web-INF目录中。

    3 回复  |  直到 8 年前
        1
  •  89
  •   Blaisorblade    14 年前

    使用 getResourceAsStream() ServletContext对象上的方法,例如。

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

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

    getServletContext() 。如果您使用的是JSP,请使用预定义的变量 application .

        2
  •  6
  •   Flexo - Save the data dump sunny moon    13 年前

    以下是它在不使用Servlet的情况下对我的工作原理。

    假设我试图访问项目/WebContent/web-INF/web.xml中的web.xml

    1. 现在让我们使用类加载器:

      InputStream inStream = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml")
      
        3
  •  0
  •   Ted_Zactly    9 年前

    我访问在java(jersey)服务器中创建的sqlite-db文件时遇到的问题完全是由于路径造成的。一些文档说jdbc连接url应该看起来像“jdbc:sqlite://path-to-file/sample.db“。我原以为双斜线是htt协议风格路径的一部分,部署时会正确映射,但实际上,它是一个绝对或相对路径。因此,当我将文件放置在WebContent文件夹(tomcat项目)的根目录时,这样的uri起作用”jdbc:sqlite:sample.db“。

    让我感到困惑的一件事是,当我正在调试调试器时,我收到了一条消息,上面写着“打开数据库:…权限被拒绝”。我认为这是文件系统权限或sql用户权限的问题。在发现SQLite没有MySQL等角色/权限的概念后,我最终在找到我认为正确的解决方案之前更改了文件权限,但我认为这只是一个坏消息(即权限被拒绝,而不是找不到文件)。

    希望这能帮助到别人。