java 獲得途徑的各類辦法(總結)。本站提示廣大學習愛好者:(java 獲得途徑的各類辦法(總結))文章只能為提供參考,不一定能成為您想要的結果。以下是java 獲得途徑的各類辦法(總結)正文
(1)、request.getRealPath("/");//不推舉應用獲得工程的根途徑
(2)、request.getRealPath(request.getRequestURI());//獲得jsp的途徑,這個辦法比擬好用,可以直接在servlet和jsp中應用
(3)、request.getSession().getServletContext().getRealPath("/");//獲得工程的根途徑,這個辦法比擬好用,可以直接在servlet和jsp中應用
(4)、 this.getClass().getClassLoader().getResource("").getPath();//獲得工程classes 下的途徑,這個辦法可以在隨意率性jsp,servlet,java文件中應用,由於不論是jsp,servlet其實都是java法式,都是一個 class。所以它應當是一個通用的辦法。
0、關於相對途徑和絕對途徑
1、根本概念的懂得相對途徑:相對途徑就是你的主頁上的文件或目次在硬盤上真實的途徑,(URL和物理途徑)例 如:C:xyz est.txt 代表了test.txt文件的相對途徑。http://www.sun.com/index.htm也代表了一個URL相對途徑。絕對途徑:絕對與某個基 准目次的途徑。包括Web的絕對途徑(HTML中的絕對目次),例如:在Servlet中,"/"代表Web運用的跟目次。和物理途徑的絕對表現。例 如:"./" 代表以後目次,"../"代表下級目次。這類相似的表現,也是屬於絕對途徑。別的關於URI,URL,URN等外容,請參考RFC相干文檔尺度。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http://www.ietf.org/rfc/rfc2396.txt)2.關於JSP/Servlet中的絕對途徑和相對途徑。 2.1辦事器真個地址辦事器真個絕對地址指的是絕對於你的web運用的地址,這個地址是在辦事器端解析的(分歧於html和javascript中的絕對 地址,他們是由客戶端閱讀器解析的)
1、request.getRealPath
辦法:request.getRealPath("/")
獲得的途徑:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\
辦法:request.getRealPath(".")
獲得的途徑:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\.
辦法:request.getRealPath("")
獲得的途徑:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest
request.getRealPath("web.xml")
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\web.xml
2、request.getParameter("");
ActionForm.getMyFile();
辦法:String filepath = request.getParameter("myFile");
獲得的途徑:D:\VSS裝置目次\users.txt
辦法:String filepath = ActionForm.getMyFile();
獲得的途徑:D:\VSS裝置目次\users.txt
--------------------------------------------------
strutsTest 為工程名
myFile 在ActionForm中,為private String myFile;
在jsp頁面中:為<html:file property="myFile"></html:file>
--------------------------------------------------
3、取得體系途徑
在Application中:
System.getProperty("user.dir")
在Servlet中:
ServletContext servletContext = config.getServletContext();
String rootPath = servletContext.getRealPath("/");
在jsp中:
application.getRealPath("")
4、其他1
1.可以在servlet的init辦法裡
String path = getServletContext().getRealPath("/");
這將獲得web項目標全途徑
例如 :E:\eclipseM9\workspace\tree\
tree是我web項目標根目次
2.你也能夠隨時在隨意率性的class裡挪用
this.getClass().getClassLoader().getResource("").getPath(); // 經由測試,這類辦法是平安的,最有用的
this.getClass().getResource("/conf").getPath();// 經由測試,這類辦法也是平安的
這將獲得 到classes目次的全途徑
例如 : /D:/workspace/strutsTest/WebRoot/WEB-INF/classes/
還有 this.getClass().getResource("").getPath().toString();
這將獲得 到 /D:/workspace/strutsTest/WebRoot/WEB-INF/classes/bl/
這個辦法也能夠不在web情況裡肯定途徑,比擬好用
3.request.getContextPath();
取得web根的高低文情況
如 /tree
tree是我的web項目標root context
5、其他2
java獲得途徑幾種門路- -
1. jdk若何斷定法式中的途徑呢?普通在編程中,文件途徑分為絕對途徑和相對途徑,相對途徑是比擬利益理的,然則不靈巧,是以我們在編程中對文件停止操作的時刻,普通都是讀取文件的絕對途徑,
絕對途徑能夠會龐雜一點,然則也是比擬簡略的,絕對的途徑,重要是絕對於誰,可所以類加載器的途徑,或許是以後 java文件下的途徑,在jsp編程中能夠是絕對於站點的途徑,絕對於站點的途徑,我們可以經由過程 getServletContext().getRealPath("\") 和request.getRealPath("\"):這個是獲得站點的相對途徑; 而getContextPath():獲得站點的虛擬途徑;
2. class.getClassLoader.getPath():獲得類加載器的途徑:甚麼是類加載器呢? 普通類加載器有體系的和用戶本身界說的;體系的ClassLoader就是jdk供給的,他的途徑就是jdk下的途徑,或許在 jsp編程,好比Tomcat ,獲得的類加載器的地位就是tomaca本身設計的加載器的途徑,
明確了這些以後,關於文件途徑的操作就會相當的清晰,我們在編程的時刻,只需想清晰我們所操作的文件是絕對於甚麼途徑下的,獲得絕對途徑便可以了.
6、總結
1、獲得web辦事器下的文件途徑
request.getRealPath("/")
application.getRealPath("")【jsp中 】
ServletContext().getRealPath("")
System.getProperty("user.dir")【分歧地位挪用,獲得的途徑是靜態變更的】
2、獲得當地途徑
jsp中,<html:file property="myFile"/>
request.getParameter("myFile");
ActionForm.getMyFile();
獲得的值雷同:如D:\VSS裝置目次\users.txt
*********************************
this.getClass().getClassLoader().getResource("").getPath();
==/D:/workspace/strutsTest/WebRoot/WEB-INF/classes/
this.getClass().getResource("").getPath().toString();
==/D:/workspace/strutsTest/WebRoot/WEB-INF/classes/bl/
3、獲得絕對途徑
request.getContextPath();
別的:
在Java文件中getResource或getResourceAsStream都可
例:getClass().getResourceAsStream(filePath);//filePath可所以" /filename",這裡的/代表web宣布根途徑下WEB-INF/classes默許應用該辦法的途徑是:WEB-INF/classes.曾經在 Tomcat中測試。
以上這篇java 獲得途徑的各類辦法(總結)就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。