JAVA Web项目获取src和WebContent目录下的配置文件

一,获取src下面的配置文件信息

  1,结构图如下:

  

  

package com.binp.properties;

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

public class GetPropertiesValues {
    
    
    public static void main(String[] args) throws Exception {
    
        //1,第一种方法(如果配置文件放在包下面,就需要在路径中把包的路径加上去)
        String path = GetPropertiesValues.class.getResource("/").getPath();
        
        System.out.println(path);
        
        FileInputStream fInputStream = new FileInputStream(path+"pro.properties");
        
        Properties properties = new Properties();
        
        properties.load(fInputStream);
        System.out.println(properties.getProperty("className"));
        
        //2,第二种方法(如果配置文件放在包下面,就需要在路径中把包的路径加上去)
        InputStream iStream = GetPropertiesValues.class.getResourceAsStream("/pro.properties");
        properties.load(iStream);
        iStream.close();
        
        System.out.println(properties.getProperty("method"));
        
        //3,第三种方法(此方法只能将配置文件放置在src目录下,不能放在包中)
        String value = ResourceBundle.getBundle("pro").getString("admin");
        
        System.out.println(value);
                
        
    }

}

二,获取WebContent目录下的配置文件

  1,前提条件:是在tomcat启动的情况下:

@WebServlet("/testEvery")  
public class testEveryServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
         
    /** 
     * @see HttpServlet#HttpServlet() 
     */  
    public testEveryServlet() {  
        super();  
        // TODO Auto-generated constructor stub  
    }  
    /** 
     * 访问url:http://localhost:8080/demoProj/testEveryServlet 
     */  
    /** 
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // TODO Auto-generated method stub  
        response.getWriter().append("Served at: ").append(request.getContextPath());  
        String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");  
        System.out.println("doGet读取到的/WEB-INF/config/sysconfig.properties:path:"+path);  
        String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");  
        System.out.println("doGet读取到的/WEB-INF/config/config.properties:url:"+url);  
        /** 
         * 结果: 
         * doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties 
         * doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties 
         */  
        //只能获取src下面的  
         InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/config/test.properties");    
            Properties prop = new Properties();  //map    
            prop.load(in);    
            String url1 = prop.getProperty("url");   
            System.out.println("获取到的url1:"+url1);//获取到的url1:www.baidu.com  
              
            //不可获取  
            InputStream in2 = this.getServletContext().getResourceAsStream("/WEB-INF/config.properties");    
            Properties prop2 = new Properties();  //map    
            prop.load(in2);    
            String url2 = prop2.getProperty("url");   
            System.out.println("获取到的url2:"+url2);//获取到的url2:null  
              
          //不可获取  
            InputStream in3 = this.getServletContext().getResourceAsStream("/webcontent.properties");    
            Properties prop3 = new Properties();  //map    
            prop.load(in3);    
            String url3 = prop3.getProperty("url");   
            System.out.println("获取到的url3:"+url3);//获取到的url3:null  
              
          //不可获取  
            InputStream in4 = this.getServletContext().getResourceAsStream("/config/wcc.properties");    
            Properties prop4 = new Properties();  //map    
            prop.load(in4);    
            String url4 = prop4.getProperty("url");   
            System.out.println("获取到的url4:"+url4);//获取到的url4:null  
          
        // 读取src下config包中的testJava.java  
//      InputStream in = ReadFile.class.getResourceAsStream("/config/testJava.java");//in为null  
//      byte[] a=new byte[100];  
//      in.read(a, 0, 900);  
//      System.out.println("读取src下config包中的testJava.java的输入流in的内容toString:"+in.toString());  
//      System.out.println("读取到的a:"+a);  
        String fileName3 = ReadFile.class.getResource("/config/test.properties").getFile();  
        System.out.println("读取src下config包中的test.properties:"+fileName3);  
//输出:读取src下config包中的test.properties:/D:/tomcat7/wtpwebapps/demoProj/WEB-INF/classes/config/test.properties  
//      in.close();  
          
        // 读取src下 基名为myproperties的properties文件,获取其中name配置值  
        String value = ResourceBundle.getBundle("myproperties").getString("name");  
        System.out.println("获取到的myproperties.properties的值value:"+value);  
//输出:获取到的myproperties.properties的值value:myname  
          
        // 读取src下myproperties.properties  
        InputStream in1 = ReadFile.class.getResourceAsStream("/myproperties.properties");  
        Properties properties = new Properties();  
        properties.load(in1);  
        String value2 = properties.getProperty("name"); // 获得name属性  
        System.out.println("获取到的myproperties.properties的值value2:"+value2);  
//获取到的myproperties.properties的值value2:myname          
          
        //读取src下的  
        String sensitiveWordsServerPath1 = SysConfig.getSysParam("sensitiveWords_server_path1");  
        System.out.println("获取的sensitiveWordsServerPath1:"+sensitiveWordsServerPath1);  
        //获取的sensitiveWordsServerPath1:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx  
          
        //读取src下的  
        String pp = prop("sensitiveWords_server_path1");  
        System.out.println("pp:"+pp);//pp:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx  
    }  
      
    public String prop(String url){  
        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/sysconfig.properties");  
        Properties p  =   new  Properties();    
        try {  
            p.load(inputStream);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        System.out.println("p:"+p);  
        return p.getProperty(url);  
    }  
      
    /** 
     * @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);  
        String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");  
        System.out.println("doPost:path:"+path);  
    }  
  
}  

参考文档:https://blog.csdn.net/superit401/article/details/78206877

猜你喜欢

转载自www.cnblogs.com/revel171226/p/9140789.html