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

2021/01/17 09:51 · java ·  · 0评论

我有一个Web存档,文件放在WEB-INF目录中。

如何在Java类中加载该文件?

我知道我可以将其放在classes目录中并从那里加载它。它将被放在WEB-INF中。

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

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

如何获得对ServletContext的引用取决于您的应用程序...是要从Servlet还是从JSP进行引用?

编辑:如果您在Servlet对象中,请调用getServletContext()如果您使用的是JSP,请使用预定义的变量application

这是不使用Servlet就对我有效的方式。

假设我正在尝试访问project / WebContent / WEB-INF / web.xml中的web.xml

  1. 在项目属性Source-tab中,通过指向WEB-INF文件夹的父容器(在本例中为WebContent)添加源文件夹。

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

    InputStream inStream = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml")
    

我访问我在Java(球衣)服务器中创建的sqlite db文件的问题完全是由于路径引起的。一些文档说jdbc连接url应该看起来像“ jdbc:sqlite://path-to-file/sample.db”。我以为双斜杠是htt协议样式路径的一部分,并且在部署时会正确映射,但是实际上,它是绝对路径或相对路径。因此,当我将文件放置在WebContent文件夹(tomcat项目)的根目录时,类似的uri可以运行“ jdbc:sqlite:sample.db”。

引发我的一件事是,当我逐步调试程序时,我收到一条消息,提示“正在打开数据库:...权限被拒绝”。我认为这是文件系统权限或sql用户权限的问题。在发现SQLite不具有MySQL等角色/权限的概念后,我最终改变了文件权限,然后才得出我认为是正确的解决方案,但我认为那只是一个不好的消息(即权限被拒绝,而不是找不到文件)。

希望这对某人有帮助。

本文地址:http://java.askforanswer.com/ruhecongwebcundangdeweb-infmuluzhongjiazaiziyuan.html
文章标签:
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!