1. 如何在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/
通過這個路徑你就能獲取該文件夾下的所有文件啦
2. 普通JAVA類 如何獲取,WEB項目的根路徑
在提問前,你應該選搜索下。web項目的路徑問題已有過回答了。貼個代碼片段給你吧……,希望能對你有所幫助
/**
* 獲取項目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("");
}
}
3. web項目如何獲得發布前項目所在的絕對路徑
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/backend/";
4. 在一個Java WEB項目里然後獲取項目工程的路徑 不要Tomcat下的路徑
request.getScheme()得到協議如:http://
request.getServerName() 得到伺服器名稱如:127.0.0.1
request.getServerPort() 得到埠號如8080
request.getContextPath() 得到當前上下文路徑,也就是安裝後的文件夾位置。
上面 連起來拼成完整的url
request.getRealPath()得到當前真實路徑,不管是比如D:\xx\xx\xx\
用EL在頁面里直接就是項目路徑了
${pageContext.request.contextPath}
5. 怎麼在一個java程序里獲得當前web應用的路徑
在java中獲得文件的路徑在我們做上傳文件操作時是不可避免的。
web 上運行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能運行
3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
在本地運行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能運行
2:this.getClass().getResource("").getPath();
this.getClass().getResource(".").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能運行
最後
在Web應用程序中,我們一般通過ServletContext.getRealPath("/")方法得到Web應用程序的根目錄的絕對路徑。
還有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic伺服器,項目內部並沒有文件結構的概念,用這種方式是始終得到null,獲取不到路徑,目前還沒有找到具體的解決方案。
6. java如何得到項目的webRoot 路徑
使用JAVA後台代碼取得WEBROOT物理路徑,可以有如下兩種方式:
1、使用JSP Servlet取得WEB根路徑可以用request.getContextPath(),相對路徑request.getSession().getServletContext().getRealPath("/"),它們可以使用我們很容易取得根路徑。
2、如果使用了spring, 在WEB-INF/web.xml中,創建一個webAppRootKey的param,指定一個值(默認為webapp.root)作為鍵值,然後通過Listener,或者Filter,或者Servlet執行String webAppRootKey = getServletContext().getRealPath("/"); 並將webAppRootKey對應的webapp.root分別作為Key,Value寫到System Properties系統屬性中。之後在程序中通過System.getProperty("webapp.root")來獲得WebRoot的物理路徑。
具體示例代碼如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>csc2.root</param-value>
</context-param>
<listener>
<listener-class>test.ApplicationListener</listener-class>
</listener>
</web-app>
ApplicationListener.java
package test;
import javax.servlet.ServletContextEvent;
import org.springframework.web.context.ContextLoaderListener;
public class ApplicationListener extends ContextLoaderListener {
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
String webAppRootKey = sce.getServletContext().getRealPath("/");
System.setProperty("csc2.root" , webAppRootKey);
String path =System.getProperty("csc2.root");
System.out.println("sssss:::"+path);
}
}
test.java
public class test {
public void remve(){
String path =System.getProperty("csc2.root");
System.out.println("result::::::::"+path);
}
}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="test.test" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
test t = new test();
t.remve();
%>
<html>
</html>
部署程序發布 啟動TOMCAT 運行index.jsp 就可以調用JAVA中全局設置的物理路徑了(說明這里的JSP 只是調用了TEST.JAVA 的remove方法,不做其他使用。原理解釋,TOMCAT啟動和讀取WEB.XML 監聽方式載入SPRING ApplicationListener繼承SPRING ContextLoaderListener載入SPRING順便吧全局路徑賦值給csc2.root 描述,這樣之後JAVA 代碼中就可以使用System.getProperty("csc2.root")調用全路路徑了。
7. java怎麼取到web服務的根路徑
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));
}
8. Java web項目,在.java程序中如何獲取webapp路徑
String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
int num=t.indexOf(".metadata");
String path=t.substring(1,num).replace('/', '\\')+"項目名\\WebContent\\文件";
復制,親測有效。
9. JAVA Web獲取路徑幾種方式
1、獲取項目根路徑
req.getSession().getServletContext().getRealPath("/");
2、獲取類路徑
this.getClass().getResource("/").getPath();