㈠ java web中讀取文件,相對路徑怎麼寫
相對路徑的話,可以先獲取到當前文件的編譯路徑,之後在找到想找文件的路徑的思路來實現。
舉例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解釋:XMLS.class.getClass()是獲取當前的類編譯路徑,之後通過getResourceAsStream的形式即可找到要讀取的文件的路徑。
備註:這個方法中後面的路徑也可以通過截取的形式來進行路徑獲取,實現原理都是找到當前類路徑,之後通過相對位置找到另外文件路徑。
㈡ java web項目關於路徑方面的問題
1
所謂的根目錄指的是/blog
還是
/WebRoot
答:在你項目已經發布後,/blog和/WebRoot是一樣的。指的是同一個目錄,在項目工程發布後,就沒有/WebRoot這個目錄了,只有/blog目錄,這個目錄下邊的內容就是/WebRoot下邊的內容。
2
轉發resuest.getRequestDispatcher("這里的相對路徑是什麼").forward(request,response);
答:這里的相對路徑是帶/的路徑,是從當前應用開始的路徑,也就是從根目錄開始的路徑。瀏覽器地址欄不變。
3
重定向response.sendRedirect("這里的相對路徑是什麼");
答:這里的相對路徑是帶/的路徑,是從當前應用開始的路徑,也就是從根目錄開始的路徑。瀏覽器地址欄會變,相當於兩次請求。
㈢ 如何在java web項目中獲得相對路徑
第一步: 先獲得classpath路徑
Stringclasspath=this.getClass().getResource("/").getPath().replaceFirst("/","");
這樣子可以得到classpath路徑,類似於:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/
然後把WEB-INF/classes截取就能獲得WebAPP目錄啦:
StringwebappRoot=classpath.replaceAll("WEB-INF/classes/","");
得到的結果就是:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/
通過這個路徑你就能獲取該文件夾下的所有文件啦
㈣ java里絕對路徑和相對路徑的區別是什麼
按照jdk Doc上的說法」絕對路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。相反,相對路徑名必須使用來自其他路徑名的信息進行解釋。默認情況下,java.io 包中的類總是根據當前用戶目錄來分析相對路徑名。此目錄由系統屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄.」
相對路徑顧名思義,相對於某個路徑,那麼究竟相對於什麼路徑我們必須弄明白.按照上面jdk文檔上講的這個路徑是」當前用戶目錄」也就是」java虛擬機的調用目錄」.更明白的說這個路徑其實是我們在哪裡調用jvm的路徑.舉個例子:
假設有一java源文件Example.java在d盤根目錄下,該文件不含package信息.我們進入命令行窗口,然後使用」d:」命令切換到d盤根目錄下,然後用」javac Example.java」來編譯此文件,編譯無錯後,會在d盤根目錄下自動生成」Example.class」文件.我們在調用」java Example」來運行該程序.此時我們已經啟動了一個jvm,這個jvm是在d盤根目錄下被啟動的,所以此jvm所載入的程序中File類的相對路徑也就是相對這個路徑的,即d盤根目錄:D:/.同時」 當前用戶目錄」也是D:/.在System.getProperty(「user.dir」);系統變數」user.dir」存放的也是這個值.
我們可以多做幾次試驗,把」Example.class」移動到不同路徑下,同時在那些路徑下,執行」java Example」命令啟動jvm,我們會發現這個」當前用戶目錄」是不斷變化的,它的路徑始終和我們在哪啟動jvm的路徑是一致的.
搞清了這些,我們可以使用相對路徑來創建文件,例如:
File file = new File(「a.txt」);
File.createNewFile();
假設jvm是在」D:/」下啟動的,那麼a.txt就會生成在D:/a.txt;
此外,這個參數還可以使用一些常用的路徑表示方法,例如」.」或」./」代表當前目錄,這個目錄也就是jvm啟動路徑.所以如下代碼能得到當前目錄完整路徑:
File f = new File(「.」);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最後要說說在eclipse中的情況:
Eclipse中啟動jvm都是在項目根路徑上啟動的.比如有個項目名為blog,其完整路徑為:D:/work/IDE/workspace/blog.那麼這個路徑就是jvm的啟動路徑了.所以以上代碼如果在eclipse里運行,則輸出結果為」 D:/work/IDE/workspace/blog.」
Tomcat中的情況.
如果在tomcat中運行web應用,此時,如果我們在某個類中使用如下代碼:
File f = new File(「.」);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那麼輸出的將是tomcat下的bin目錄.我的機器就是」 D:/work/server/jakarta-tomcat-5.0.28/bin/.」,由此可以看出tomcat伺服器是在bin目錄下啟動jvm的.其實是在bin目錄下的」 catalina.bat」文件中啟動jvm的.
㈤ Java Web項目的相對路徑問題
我是這么弄的
String realPath = request.getSession().getServletContext()
.getRealPath("\\");// 項目磁碟路徑
再在後面加上你想要的路徑
祝你順利!
㈥ javaweb中什麼時候使用絕對路徑,什麼時候用相對路徑
就我的經驗來說,沒有什麼絕對的情況,想用什麼就用什麼。一般相對路徑,寫得少嘛。或者你不想把所有的路徑暴露出來,那就用相對路經吧。有時候,發現路徑不識別的時候,我就會兩種路徑都寫寫,去嘗試一下哪種對。
㈦ javaweb相對路徑怎麼寫
相對路徑當然是相對的了
如果你的項目發布的時候是有項目名的如:http://localhost:8080/IExchange
那麼相對路徑就這么寫/IExchange/files/common
如果你是不帶項目名的配置 比如:http://localhost:8080/
就這么寫 /files/common
要活學活用啊.
㈧ java絕對路徑和相對路徑的區別
1.基本概念的理解
絕對路徑:絕對路徑就是你的主頁上的文件或目錄在硬碟上真正的路徑,(URL和物理路徑)例如:
C:\xyz\test.txt 代表了test.txt文件的絕對路徑。http://www.sun.com/index.htm也代表了一個
URL絕對路徑。
相對路徑:相對與某個基準目錄的路徑。包含Web的相對路徑(HTML中的相對目錄),例如:在
Servlet中,"/"代表Web應用的根目錄。和物理路徑的相對表示,例如:"./" 代表當前目錄,
"../"代表上級目錄。這種類似的表示,也是屬於相對路徑。
㈨ java web項目 相對路徑怎麼寫
servlet裡面通過String basePath=session.getServletContext().getRealPath("/");獲取webRoot目錄真實路徑。
比如d:\tomcat 6\webapps\項目名
webRoot下面的resources目錄通過File path = new File(basePath, "resources");獲取
其它同理
如果是jsp的話,獲取resources目錄直接通過「<%=request.getContextPath()%>/resources」獲取