ServletContext获取Web项目下的文件

    * 读取web项目下/src目录下的db.properties配置文件:
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/caiwu
username=root
password=root
1、通过ServletContext的getRealpath获取文件的绝对路径
//通过ServletContext的getRealpath获取文件的绝对路径
String realPath = this.getServletContext().getRealPath("WEB-INF/classes/db.properties");
//获取IO流
FileInputStream is = new FileInputStream(realPath);
//properties是持久化的一个空属性列表
Properties prop = new Properties();
//加载
prop.load(is);
		
//d读取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username= prop.getProperty("username");
String password = prop.getProperty("password");
//打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");
2、通过ServletContext的getResourceAsStream获得IO流
//通过ServletContext的getResourceAsStream获得IO流
InputStream is = this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
Properties prop = new Properties();
//加载
prop.load(is);
		
//读取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");

3、使用类加载器读取配置文件(附1)

package 类加载器加载配置文件;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ReadFileUtils {
	//私有构造(工具类)
	private ReadFileUtils() {}
	public static void readFile() throws IOException{
		// 使用类的加载器来读取文件.
		// 类的加载器用来加载class文件,将class文件加载到内存.
		InputStream is = ReadFileUtils.class.getClassLoader().getResourceAsStream("db.properties");
		Properties properties = new Properties();
		properties.load(is);
		
		String driverClass = properties.getProperty("driverClass");
		String url = properties.getProperty("url");
		String username = properties.getProperty("username");
		String password = properties.getProperty("password");
		
		System.out.println(driverClass);
		System.out.println(url);
		System.out.println(username);
		System.out.println(password);
	}
}
4、初学JAVA核心时使用的加载配置文件的方式(附2)
//传统
//创建输入流对象
InputStream is = new FileInputStream("src/db.properties");
    Properties prop = new Properties();
    //加载
    prop.load(is);

 //获取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
		
 //打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");

总结:

    附2中使用的加载方式是初学者使用,在实际开发中禁止使用。发布的web项目是不存在/src目录的。

    附1使用的类加载器:

        优点:通过文件名可直接获取文件,不必写文件路径。

        缺点:文件仅限在/src目录下的文件,一旦文件在其他目录下,则不能读取文件。

实际开发中推荐使用:ServletContext对象获取Web项目下的文件。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值