天天看點

JSP/Servlet中獲得目前web應用程式的相對路徑和絕對路徑

JSP中絕對路徑 getServletContext().getRealPath("/") session.getServletContext().getRealPath("count.txt") application.getRealPath("count.txt") request.getSession.getServletContext().getRealPath("count.txt") 不建議的方法..  request.getRealPath("/")   JSP中獲得目前應用的相對路徑和絕對路徑

根目錄所對應的絕對路徑:request.getRequestURI()

檔案的絕對路徑       :application.getRealPath(request.getRequestURI());

目前web應用的絕對路徑 :application.getRealPath("/");

取得請求檔案的上層目錄:new File(application.getRealPath(request.getRequestURI())).getParent()

Servlet中獲得目前應用的相對路徑和絕對路徑

根目錄所對應的絕對路徑:request.getServletPath();

檔案的絕對路徑      :request.getSession().getServletContext().getRealPath

(request.getRequestURI())  

目前web應用的絕對路徑 :servletConfig.getServletContext().getRealPath("/");

       (ServletContext對象獲得幾種方式:

         Javax.servlet.http.HttpSession.getServletContext()

         Javax.servlet.jsp.PageContext.getServletContext()

         Javax.servlet.ServletConfig.getServletContext()

       )

Java 的Class中獲得相對路徑,絕對路徑的方法

單獨的Java類中獲得絕對路徑

  根據Java.io.File的Doc文擋,可知:

預設情況下new File("/")代表的目錄為:System.getProperty("user.dir")。

一下程式獲得執行類的目前路徑

package org.cheng.file;

import Java.io.File;

public class FileTest {

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

    System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));    

    System.out.println(FileTest.class.getClassLoader().getResource(""));       

  System.out.println(ClassLoader.getSystemResource(""));       

    System.out.println(FileTest.class.getResource(""));       

    System.out.println(FileTest.class.getResource("/")); //Class檔案所在路徑

    System.out.println(new File("/").getAbsolutePath());       

    System.out.println(System.getProperty("user.dir"));   

}

}

伺服器中的Java類獲得目前路徑(來自網絡)

(1).Weblogic

WebApplication的系統檔案根目錄是你的weblogic安裝所在根目錄。

例如:如果你的weblogic安裝在c:/bea/weblogic700.....

那麼,你的檔案根路徑就是c:/.

是以,有兩種方式能夠讓你通路你的伺服器端的檔案:

a.使用絕對路徑:

比如将你的參數檔案放在c:/yourconfig/yourconf.properties,

直接使用 new FileInputStream("yourconfig/yourconf.properties");

b.使用相對路徑:

相對路徑的根目錄就是你的webapplication的根路徑,即WEB-INF的上一級目錄,将你的參數檔案放

在yourwebapp/yourconfig/yourconf.properties,

這樣使用:

new FileInputStream("./yourconfig/yourconf.properties");

這兩種方式均可,自己選擇。

(2).Tomcat

在類中輸出System.getProperty("user.dir");顯示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相對路徑,是JSP引擎執行這個JSP編譯成SERVLET

的路徑為根.比如用建立檔案法測試File f = new File("a.htm");

這個a.htm在resin的安裝目錄下

(4).如何讀相對路徑哪?

在Java檔案中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",這裡的/代表web

釋出根路徑下WEB-INF/classes

預設使用該方法的路徑是:WEB-INF/classes。已經在Tomcat中測試。

5.讀取檔案時的相對路徑,避免寫死和絕對路徑的使用。(來自網絡)

5.1 采用Spring的DI機制獲得檔案,避免寫死。

     參考下面的連接配接内容:

     http://www.Javajia.Net/viewtopic.Php?p=90213&

5.2 配置檔案的讀取

參考下面的連接配接内容:

http://dev.csdn.Net/develop/article/39/39681.shtm

5.3 通過虛拟路徑或相對路徑讀取一個Xml檔案,避免寫死

參考下面的連接配接内容:

http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8

6.Java中檔案的常用操作(複制,移動,删除,建立等)(來自網絡)

常用 Java File 操作類

http://www.easydone.cn/014/200604022353065155.htm

Java檔案操作大全(JSP中)

http://www.pconline.com.cn/pcedu/empolder/gj/Java/0502/559401.html

Java檔案操作詳解(Java中文網)

http://www.51cto.com/html/2005/1108/10947.htm

Java 如何建立/删除/修改/複制目錄及檔案