加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Servlet/JSP中加载属性文件[复制]

发布时间:2020-05-25 01:36:18 所属栏目:Java 来源:互联网
导读:参见英文答案 Where to place and how to read configuration resource files in servlet based application?6个 我已经从我的Java项目创建了一个jar,并希望在JSP Servlet项目中使用相同的jar.我正在尝试加载一个属性文件,让

参见英文答案 > Where to place and how to read configuration resource files in servlet based application?6个
我已经从我的Java项目创建了一个jar,并希望在JSP Servlet项目中使用相同的jar.我正在尝试加载一个属性文件,让我说我的JSP Servlet项目中的sample.properties保存在WEB / properties / sample.properties中,应该由jar中的类读取.我在类中使用以下代码wriiten jar来访问它.

Properties prop=new Properties();
prop.load(/WEB-INF/properties/sample.properties);

但每次我都得到fileNotFound异常.
请建议我的解决方案.

这是结构

WEB-INF
      |
       lib
          |
           myproject.jar
                       |
                        myclass (This class needs to read sample.properties)
      |
       properties
                 |sample.properties

解决方法

/ WEB-INF文件夹不是类路径的一部分.所以这里任何回答都没有意思,建议 ClassLoader#getResourceAsStream()永远不会奏效.它只有在属性文件放在/ WEB-INF / classes中才有效,这确实是类路径的一部分(在像Eclipse这样的IDE中,只需将它放在Java源文件夹的根目录就足够了).

如果属性文件确实存在于您希望保留的位置,那么您应该在ServletContext#getResourceAsStream()之前将其作为Web内容资源.

假设你在HttpServlet中,这应该做:

properties.load(getServletContext().getResourceAsStream("/WEB-INF/properties/sample.properties"));

(getServletContext()继承自servlet超类,你不需要自己实现它;所以代码是原样的)

但是如果该类本身根本不是HttpServlet,那么你真的需要将属性文件移动到类路径中.

也可以看看:

> Where to place and how to read configuration resource files in servlet based application?

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读