JSP中使用Properties.load()读取配置文件

        由于项目需要,想在jsp文件中通过Properties来读取配置文件中的信息。刚开始是在WebContent下建了个properties目录用来放置配置文件mainPage.properties。

jsp中的读取代码如下:

<% 
Properties prop = new Properties();
prop.load(Properties.class.getResourceAsStream("/properties/mainPage.properties"));
String path = prop.getProperty("image.logo1");
%>

        从代码中可以看到,我是通过Properties类来获取InputStream的。因为我记得当初学这个的时候,老师说用“当前类中用到的任何一个类”来获取InputStream都可以,而且此处也就String和Properties这两个类。可是我尝试了用Properties和String都失败,报找不到文件路径的错。

        再看看Properties.class,或许你已经发现,这个指的是Properties的字节码文件,而Properties.class.getResourceAsStream()应该就是获得Properties字节码文件所在的目录作为输入流InputStream。可是我在项目文件的classes中怎么也没找到Properties.class文件,只有自己创建的类的字节码文件,这是因为Properties.class如我们导包导入的。

在这里:rt.jar下的java.util下的Properties.class

175545_vSjO_2708044.png175639_yFOS_2708044.png

        所以,我们通过下面这句,是load不到在WebContent下的properties文件的。

prop.load(Properties.class.getResourceAsStream("/properties/mainPage.properties"));

        解决:

        我只好把properties/mainPage.properties整个文件目录放在src下面,和Java包同级。注意!这样还不行,还得把上面那句改成prop.load(xxx.class.getResourceAsStream("/properties/mainPage.properties"));其中的xxx是你自己建的任意一个类的类名(如果是在Java类中使用properties.load,则只要使用该类中出现的任意一个类的类名都可以)。这样就能得到classpath,即下图中的......./build/classes,然后再加上proeprties/mainPage.properties就可load到配置文件了。ps:我建的类的字节码文件在com下面

180946_OB7O_2708044.png

        以上的做法虽然正确,可是我自己都感觉怪怪的。大家可以看看我的另一篇博客:关于文件路径的配置例子,应该可以找到更清晰的答案

 

转载于:https://my.oschina.net/henryking/blog/769825

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值