導航:首頁 > 文件教程 > web文件讀取路徑

web文件讀取路徑

發布時間:2021-02-27 14:49:32

『壹』 如何獲取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,獲取不到路徑,目前還沒有找到具體的解決方案。

『貳』 如何在web頁面獲取文件絕對路徑

string filePath = Server.MapPath("D:\tst\tst.tx");
參考MSDN
http://msdn.microsoft.com/zh-cn/library/system.web.httpserverutility.mappath.aspx

解釋:
public string MapPath(
string path
)
參數

path
類型:System.String
Web 伺服器的虛擬路徑。
返回值

類型:System.String
與 path 相對內應的物理文件容路徑。

『叄』 分析下web。xml執行servlet的路徑。。就是說讀取文件的路徑。

樓主可以這樣分析,首先我從你的代碼中選出一對代碼
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Cunchu</servlet-name>
<servlet-class>ch.Cunchu</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Cunchu</servlet-name>
<url-pattern>/servlet/Cunchu</url-pattern>
</servlet-mapping>
這里的<servlet-mapping>與<servlet>很明顯示一組信息,那麼我們的jsP頁面時如何找到對引得Servlet文件呢?
首先,在你點擊提交按鈕的時候,會執行Action中的地址內容,也就是<servlet-mapping>中的<url-pattern>中的URL信息,再找到對應的URL後,就可以確認對應的<servlet-mapping>中的<servlet-name>,系統就會根據<servlet-mapping>中的<servlet-name>,去尋找對應相同名字的<servlet>,最後就可以找到<servlet>對應的<servlet-class>中的servlet文件進行執行。

也就是說,jsp中action配置的地址應該與<servlet-mapping>中的<url-pattern>地址一致,<servlet-mapping>中的<servlet-name>應該與<servlet>中的<servlet-name>相同,最終要執行的servlet文件要與<servlet>中的<servlet-class>地址一致。

希望對你有幫助,加油

『肆』 javaweb中怎麼獲取文件的絕對路徑

在jsp和class文件中調用的相對路徑不同。 在jsp里,根目錄是WebRoot 在class文件中,根目錄是WebRoot/WEB-INF/classes 當然你也可以用System.getProperty("user.dir")獲取你工程的絕對路徑。
另:在Jsp,Servlet,Java中詳細獲得路徑的方法!
1.jsp中取得路徑:

以工程名為TEST為例:

(1)得到包含工程名的當前頁面全路徑:request.getRequestURI()
結果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
結果:/TEST
(3)得到當前頁面所在目錄下全名稱:request.getServletPath()
結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp
(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp")
結果:D:/resin/webapps/TEST/test.jsp
(5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
結果:D:/resin/webapps/TEST

2.在類中取得路徑:

(1)類的絕對路徑:String u=Class.class.getClass().getResource("/").getPath()
結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路徑:System.getProperty("user.dir")
結果:D:/TEST

3.在Servlet中取得路徑:

(1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數可具體到包名。
結果:E:/Tomcat/webapps/TEST
(2)得到IE地址欄地址:request.getRequestURL()

(3)得到相對地址:request.getRequestURI()
結果:/TEST/test

『伍』 java web中讀取文件,相對路徑怎麼寫

相對路徑的話,可以先獲取到當前文件的編譯路徑,之後在找到想找文件的路徑的思路來實現內。容
舉例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解釋:XMLS.class.getClass()是獲取當前的類編譯路徑,之後通過getResourceAsStream的形式即可找到要讀取的文件的路徑。
備註:這個方法中後面的路徑也可以通過截取的形式來進行路徑獲取,實現原理都是找到當前類路徑,之後通過相對位置找到另外文件路徑。

『陸』 java web工程,讀取配置文件路徑問題

讀取復src下的文製件,可以用下面的方式

publicclassTest1{

publicstaticvoidmain(String[]args){
Propertiespro=newProperties();
InputStreamin=Test1.class.getResourceAsStream("/config.properties");
try{
pro.load(in);
pro.getProperty("aa");
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

『柒』 java web工程中讀取properties文件,路徑一直不知道怎麼寫

1. 使用java.lang.Class類的getResourceAsStream(String name)方法

InputStreamin=getClass().getResourceAsStream("/config.properties");

在靜態方法中,由於不能使用getClass()方法,必須寫出類的名字。區別不大。

MyClass.class.getResourceAsStream("/config.properties");

使用這個方法,路徑前面可以加斜杠也可以不加。根據Class類getResourceAsStream()方法的JavaDoc:

Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream.

Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:

If the name begins with a '/' ('u002f'), then the absolute name of the resource is the portion of the name following the '/'.

Otherwise, the absolute name is of the following form:

modified_package_name/name

Where the modified_package_name is the package name of this object with '/' substituted for '.' ('u002e').

就是說,這個path假如以斜杠開頭,則斜杠後面的部分是文件相對classpath的路徑;假如不是,Java會把這個path看作是「包名/文件名」的結構,會嘗試在這個類的包裡面去找,而不是從classpath開始找;在這種情況下,除非你把properties文件放到MyClass.class所屬的包裡面,不然都會是null的。

2. 使用java.lang.ClassLoader類的getResourceAsStream(String name)方法


路徑是不能加斜杠的!非常重要。

MyClass.class.getClassLoader().getResourceAsStream("config.properties");

這是因為使用classloader進行讀取,所輸入的參數必須是一個相對classpath的絕對路徑,在格式上,一個絕對路徑是不能以'/'開頭的。

注意這兩個方法是同名的,但路徑參數的格式截然不同。


3. 在Maven中的運用

現在幾乎所有的web project都是maven project,Maven的默認設置是把

src/main/resources/

加入到classpath裡面的。那麼,最好的做法是把你的properties文件放進src/main/resources裡面,然後用上面代碼讀取。用Class類的,一般要加斜杠;用ClassLoader類的,絕不能加斜杠!

假如是Eclipse裡面,需要把這個src/main/resources加到classpath裡面。具體操作是右擊工程,選擇「Configure buildpath」,根據Maven的要求,把src/main/java和src/main/resources都加進去,並且保證Exclude是none,Include是all,或者至少要包括你需要讀取的文件。

『捌』 關於web工程中java類如何獲取webapp路徑下的文件

第一復步: 先獲得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 web 怎麼獲取文件路徑

以工程名為TEST為例:

(1)得到包含工程名的當前頁面全路徑:request.getRequestURI()
結果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
結果:/TEST
(3)得到當前頁面所在目錄下全名稱:request.getServletPath()
結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp
(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp")
結果:D:/resin/webapps/TEST/test.jsp
(5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
結果:D:/resin/webapps/TEST

『拾』 怎麼獲取webroot下的一個文件夾的路徑

package com.test.servlet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {

/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

DiskFileItemFactory factory= new DiskFileItemFactory();

String path=request.getRealPath("/upload");//保存的默認路徑,注意在Tomecate底下的

//System.out.println(path);

factory.setRepository(new File(path));

factory.setSizeThreshold(1024*1024);//上傳的大於1M就存在磁碟裡面

ServletFileUpload upload=new ServletFileUpload(factory);

try{

List<FileItem> list=upload.parseRequest(request);
//注意FileItem集合裡面放的是提交的所有東西 包括username,password不僅僅是文件

for(FileItem item:list)
{

if(item.isFormField())//判斷不是文件類型
{
String name=item.getFieldName();//取欄位的名字

String value = item.getString("gbk");

request.setAttribute(name, value);
}
else//是文件類型
{

String name = item.getFieldName();

String value = item.getName();//只適用於返迴文件類型的名字

int star=value.lastIndexOf("\\");

String filename=value.substring(star+1);//取文件名字

System.out.println(filename);

request.setAttribute(name, filename);

item.write(new File(path,filename));

/* OutputStream os = new FileOutputStream(new File(path,filename));

InputStream is = item.getInputStream();

byte[] buffer=new byte[400];

int length=0;

while((length = is.read(buffer))>0)
{
os.write(buffer,0,length);
}

os.close();

is.close();

*/
}

}

}catch(Exception e)
{
e.printStackTrace();
}

request.getRequestDispatcher("upload/result2.jsp").forward(request, response);

}

}
很詳細!!

閱讀全文

與web文件讀取路徑相關的資料

熱點內容
手機百度app如何上傳文件 瀏覽:672
韓劇電影版 瀏覽:887
瀟湘書院sp 瀏覽:324
林正英下載 瀏覽:511
帶著智能手機闖盪異世界 小說 瀏覽:901
男同情愛電影 瀏覽:913
vb監控文件夾 瀏覽:850
台灣丈夫電影 瀏覽:660
戴爾筆記本為什麼連不上無線網路 瀏覽:582
台灣的電影電視劇都用什麼網站 瀏覽:238
米思齊編程土壤濕度感測器怎麼用 瀏覽:208
大寸度愛情電影 瀏覽:213
2015年全球大數據總量 瀏覽:63
建設工程人員配置要求在哪個文件 瀏覽:157
泰國大尺度同性 瀏覽:448
手機excel怎麼保存文件怎麼打開 瀏覽:77
主角叫林白 瀏覽:395
胸很大的電影 瀏覽:899
水裡作愛的電影韓國 瀏覽:404
京東金融java薪酬 瀏覽:205

友情鏈接