我有一个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
-
在项目属性Source-tab中,通过指向WEB-INF文件夹的父容器(在本例中为WebContent)添加源文件夹。
-
现在让我们使用类加载器:
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等角色/权限的概念后,我最终改变了文件权限,然后才得出我认为是正确的解决方案,但我认为那只是一个不好的消息(即权限被拒绝,而不是找不到文件)。
希望这对某人有帮助。
文章标签:java
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!