.在java和java web程式中的含義以及如何獲取web資源

fan_rockrock發表於2016-11-23

java程式中

例子

.表示java命令所在的目錄,即bin目錄。使用eclipse工具中的.是當前專案所在的目錄。
這裡寫圖片描述

package com.wangfan.test;

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("./src/test");//.表示當前專案所在目錄
        //讀取檔案
        //...
    }
}

原理

這裡寫圖片描述

java web中

在web專案中, . 代表在tomcat/bin下。

如何載入web資源

這裡寫圖片描述

public class ResourceDemo extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        /**
         *   結論: 在web專案中, . 代表在tomcat/bin目錄下開始,所以不能使用這種相對路徑。
         */


        //讀取檔案。在web專案下不要這樣讀取。因為.表示在tomcat/bin目錄下
        /*File file = new File("./src/db.properties");
        FileInputStream in = new FileInputStream(file);*/

        /**
         * 使用web應用下載入資原始檔的方法
         */
        /**
         * 1. getRealPath讀取,返回資原始檔的絕對路徑
         */
        /*String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
        System.out.println(path);
        File file = new File(path);
        FileInputStream in = new FileInputStream(file);*/

        /**
         * 2. getResourceAsStream() 得到資原始檔,返回的是輸入流
         */
        InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");


        Properties prop = new Properties();
        //讀取資原始檔
        prop.load(in);

        String user = prop.getProperty("user");
        String password = prop.getProperty("password");
        System.out.println("user="+user);
        System.out.println("password="+password);   
    }
}

相關文章