Servlet加载Properties

Servlet中加载配置文件的方式(使用Properties)

这里我只测试了加载Properties的路径问题(且前提是配置文件是放在resources目录下的),其他类型的配置文件不展开赘述

方法1:使用类的加载器

在java中我们常用的加载Properties文件的方法为:使用当前类的加载器,获取资源流之后再new 一个Properties对象进行加载,所以在Servlet中我们也可以使用这样的方法进行加载配置文件。具体的在Servlet中的代码如下:

// 使用类的加载器获取资源文件,相对路径如下所示
ClassLoader loader = 当前类名.class.getClassLoader();
// 获取资源流
InputStream is = loader.getResourceAsStream("db.properties");
Properties pros = new Properties();
// 加载资源流
pros.load(is);

项目的文件目录结构如下,Maven是对规范要求较高,不按要求可能会出现一些问题
在这里插入图片描述

这种方式是可以进行加载resources目录下的配置文件的,又例如,想加载resources目录下的test目录下的db.properties的话,路径仅需要替换为如下所示:

// 使用类的加载器获取资源文件,相对路径如下所示
ClassLoader loader = 当前类名.class.getClassLoader();
// 获取资源流
InputStream is = loader.getResourceAsStream("test/db.properties");
Properties pros = new Properties();
// 加载资源流
pros.load(is);

值得注意的是test目录前没有 /

方法2:使用ServletContext上下文

在Servlet中,可以通过 this.getServletContext() 方法来获得一个当前项目的上下文,这个上下文可以用于多个Servlet类之间的数据共享等操作,也可以通过 context.getResourceAsStream() 方法以流的形式加载配置文件,一个完整的Maven项目通过编译自动生成的 target目录结构 如下:
在这里插入图片描述
这个servlet-02-1.0-SNAPSHOT目录就是当前项目所在的目录,可以看到我们需要加载的配置文件是在 /WEB-INF/classes/db.properties这个位置的,所以具体的在Servlet中的获取配置文件的代码如下:

// 获取Serlet的上下文环境
ServletContext context = this.getServletContext();
// 获取资源流,context获取资源流的路径是相当于在servlet-02-1.0-SNAPSHOT目录
InputStream is = context.getResourceAsStream("/WEB-INF/classes/db.properties");
Properties pros = new Properties();
pros.load(is);

结论:在Servlet中获取配置文件的方式不同相对路径也不尽相同,所以要根据你的需要来选择加载配置文件的方式
希望我微不足道的见解可以帮到你~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值