java獲取根路徑有兩種方式:
1),在servlet可以用一下方法取得:
request.getRealPath(「/」) 例如:filepach = request.getRealPath(「/」) 」//upload//」;
2),不從jsp,或servlet中獲取,只從普通java類中獲取:
String path =
getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
SAXReader() saxReader = new SAXReader();
if(path.indexOf(「WEB-INF」)>0){
path = path.substring(0,path.indexOf(「/WEB-INF/classes」) 16);
// 『/WEB-INF/classes』為16位
document = saxReader.read(path filename);
}else{
document = saxReader.read(getClass().getResourceAsStream(filename));
}
weblogic tomcat 下都有效
String path =
getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
<!--EndFragment-->
B. java web應用程序的properties文件路徑
這個問題就得看你的配置文件放在哪裡啦,如果放在了項目的Classes目錄(或子目錄)下,你可以用**.Class.getResource('相對路徑')來獲取配置文件路徑.如果是其他目錄,那你只能在項目啟動時通過ServletContext獲取項目根目錄+配置文件的目錄來確定路徑.並把路徑放到類文件可以引用的地方啦.
以下是我在做項目時寫的一個用於獲取路徑的類,寫的可能不太好.但還是希望能對你有所幫助:
package com.example.web;
import java.io.File;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
/**
* 路徑獲取類
* */
public class WebPath {
/**
* 獲取項目根目錄的絕對路徑
*
* @return 如:F:\TongJianpeng\J2EEUtil
* */
public static String getAbsolutePathWithProject() {
return System.getProperty("user.dir");
}
/**
* 獲取項目所在盤符
* */
public static String getDriverPathWithProject() {
return new File("/").getAbsolutePath();
}
/**
* 獲取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request) {
return request.getSession().getServletContext().getRealPath("/");
}
/**
* 獲取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request, String path) {
return request.getSession().getServletContext().getRealPath(path);
}
/**
* 獲取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(ServletContext context) {
return context.getRealPath("/");
}
/**
* 獲取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(ServletContext context,
String path) {
return context.getRealPath(path);
}
/**
* 獲取項目classpath目錄的絕對路徑
*
* @return classes目錄的絕對路徑<br/>
* file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
* */
public static URL getAbsolutePathWithClass() {
return WebPath.class.getResource("/");
}
/**
* 獲取項目classPath目錄下的指定目錄的絕對路徑
*
* @param path
* classes目錄下的指定目錄.比如:/com/
* @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
* */
public static URL getAbsolutePathWithClass(String path) {
return WebPath.class.getResource(path);
}
/**
* 獲取指定類文件的所在目錄的絕對路徑
*
* @param clazz
* 類
* @return 類文件的絕對路徑.例如:<br/> 包com.Aries.Util.Web下的Main.java類.<br/>
* 路徑為:file:/
* F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
* */
public static URL getAbsolutePathWithClass(Class clazz) {
return clazz.getResource("");
}
}
C. 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」獲取
D. Java web項目訪問路徑問題。求解啊!
images的url寫成src="${pageContext.request.contextPath}/images/logo.jpg"
一般會把${pageContext.request.contextPath}這部分提取出來,在jsp寫成:
<% String path = request.getContextPath();%>
如圖:
則images路徑可以寫成src="<%=path%>/images/logo.jpg"
訪問login.jsp頁面的話,寫成http://ip:埠號/CityInfo/pages/login.jsp
E. javaWeb 伺服器與客戶端上傳文件(路徑)的問題
在項目中建個文件夾,把文件放進去,然後改用項目中的地址,否則是無法發布到伺服器上的,伺服器解析不了你主機的文件!
F. java web 讀取路徑中的圖片並顯示的問題
直接用img標簽顯示啊,至於路徑是相對路徑,當然你本地上有那個圖片資源填那個絕對路徑也沒問題。
G. Java Web項目實現上傳文件以及下載文件功能的關於路徑的問題
你這個項目用的maven來管理包和依賴的,但你不用太在意這個maven的目錄結構啊.你做上傳的時候應該把文件放到個單獨的位置而不是放到src目錄裡面,因為這個src目錄部署後是要拷到WEB-INF下面的classes目錄的,如果確實需要這樣做,那你就在寫上傳代碼的時候把文件拷到target目錄中