簡體   English   中英

文件屬性未在動態 web 項目中重新調整

[英]file properties not reconised in dynamic web project

我在 webApplication 的 racine 中有一個 conf.properties,我在 class manageBDD 中有一個方法 init 來初始化參數。

當我在 class ManageBDD 的方法 main 中調用該方法時,我在 servlet 中調用了方法 init 但文件沒有被重新識別。

為什么在 servlet 中文件沒有被重新識別,而在 class ManageBdd 的方法 main 中文件被重新識別?

(拋出異常只是為了測試方法......)

    public static void init() throws Exception {
    
    FileInputStream file = new FileInputStream("conf.properties");
    
    Properties prop = new Properties();
    prop.load(file);
    
    pDriver = prop.getProperty("jdbc.driver");
    pUrl = prop.getProperty("jdbc.url");
    pLogin = prop.getProperty("jdbc.login");
    pPass = prop.getProperty("jdbc.pass");
    
    System.out.println("in class : " + prop.getProperty("jdbc.login"));
    System.out.println("in class : " + prop.getProperty("jdbc.pass"));
    System.out.println("in class : " + prop.getProperty("jdbc.driver"));
    System.out.println("in class : " + prop.getProperty("jdbc.url")); 
    
}

弧形目錄:

在主 ManageBDD 中,方法工作:

    public static void main(String[] args) throws Exception {
    
    init();
    
}

當我運行服務器時,在 servlet 中不起作用:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    try {
        ManageBDD.init();
    } catch (Exception e) {
        e.printStackTrace();
    }

    //request.getRequestDispatcher("/index.jsp").forward(request, response);        
}

如果將此文件放在 web 應用程序的根目錄中,它可能會被發布到 inte.net。 為什么不使用 servlet 容器的連接池來管理數據庫連接? 對於 Tomcat在這里解釋

在您的 servlet 中,您可以從容器中獲取它。 唯一要注意的是,在您對數據庫完成操作后立即關閉連接,將連接返回給連接池。

如果你不想這樣做,你也可以使用 web.xml 文件(它在 WEB-INF 目錄中)來存儲你的 web 應用程序中使用的值。 然后你不需要關心位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM