java项目与web项目中获取当前项目下的properties文件-----(有区别呀呀呀!!!!)

一、普通java项目

  1. 先看普通java项目结构:
    在这里插入图片描述
  2. config.properties文件:
    在这里插入图片描述
  3. 这里如何如何加载config.properties文件呢?
    直接撸代码:
package com.demo.test;

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

public class Test01 {
	public static void main(String[] args) throws IOException {
		//1通过Properties对象来加载普通java项目的文件
		Properties pro = new Properties();
		
		//2.直接用文件输入流的方式
//		InputStream inStream = new FileInputStream("src/config.properties");
		
		//3.也可以用类加载器的方式
		InputStream is = Test01.class.getClassLoader().getResourceAsStream("config.properties");
		
		//4.加载文件(输入流)
//		pro.load(inStream);
		pro.load(is);
		String value = pro.getProperty("key2");
		System.out.println(value);
	}
}

二、web项目

  • 先看目录结构
    在这里插入图片描述
  • config.properties文件内容
    在这里插入图片描述
  • 这里加载config.properties就不能像上面那样子了
    直接上代码
package haijia;
/**
 * 测试访问普通java工程项目中src下的文件,用同样方法来访问web项目中src的文件,看看效果
 * 结果:报错,找不到指定路径,因为在tomcat服务器上没有src路径
 */

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

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Test006
 */
@WebServlet("/test006")
public class Test006 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//1.获取ServletContext对象
		ServletContext sct = this.getServletContext();
		
		//2.这个路径一定是相对于tomcat服务器下的,不是web工程下的src
		String path = "/WEB-INF/classes/config.properties";
		
		//获取绝对路径
		String realPath = sct.getRealPath(path);
		
		//3.创建Properties对象
		Properties pro = new Properties();
		
		//4.获取输入流
//		InputStream is = sct.getResourceAsStream(realPath);   //报错,因为该方法的参数要相对路径,换成path就可以
		InputStream is = new FileInputStream(realPath);
		
		//5.加载文件
		pro.load(is);
		
		//6.取值
		String name = pro.getProperty("name");
		String weixin = pro.getProperty("weixin");
		
		//7.返回信息给浏览器
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().print("名字叫 :"+name+",weixin:"+weixin);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}
  • 浏览器端结果展示:
    在这里插入图片描述

三、分享交流

最后有兴趣一起交流的,可以关注我的公众号:这里你能够学到很实用的技巧,不是常用的我不说,公众号回复提取码即可获取以下学习资料啦啦啦啦,喜欢就拿去吧!!

(链接时常会失效,若出现此类情况,可以加我微信:17722328325(加时请备注:学习资料))

  1. Java web从入门到精通电子书

  2. Python机器学习电子书

  3. Python400集(北京尚学堂)

  4. JavaScript项目案例、经典面试题

  5. Java300集(入门、精通)

  6. Java后端培训机构录集(同事培训内部提供)

  7. java重要知识pdf文档(价值连城呀呀,不收藏你会后悔的)

在这里插入图片描述

发布了39 篇原创文章 · 获赞 13 · 访问量 4832

猜你喜欢

转载自blog.csdn.net/qiukui111/article/details/104958202