Java Web開發(fā)之訪問路徑問題分析
本文實(shí)例講述了Java Web開發(fā)之訪問路徑問題。分享給大家供大家參考。具體如下:
Web應(yīng)用是由大量的文件組成的,系統(tǒng)等運(yùn)行主要是靠文件之間的相互調(diào)用來完成,調(diào)用就是根據(jù)文件的位置來確定的。如果你在訪問某個文件的時候,系統(tǒng)報下面這樣的錯誤,如果你的文件名沒有寫錯,就是路徑出錯了。
為了說明路徑問題,我們假設(shè)有以下的文檔結(jié)構(gòu):
這是JBuilder2006下的一個截圖,應(yīng)用的名字是filepathweb,有兩個文件夾,aa和bb,其中aa下有a_a.jsp和a_b.jsp兩個文件,bb下有b_a.jsp文件。
絕對路徑
Web文件訪問的基本格式如下:
協(xié)議://主機(jī):端口/應(yīng)用名/文件夾名/文件
協(xié)議:這里應(yīng)該是http協(xié)議;
主機(jī):是運(yùn)行Web應(yīng)用的服務(wù)器的地址,可以使用主機(jī)名(或者域名),可以使用IP地址,如果是本機(jī)的話,可以使用虛擬IP地址(127.0.0.1),可以使用機(jī)器名。
端口:Web服務(wù)器運(yùn)行時候所使用的端口,每個服務(wù)器程序都會有端口。對于Web應(yīng)用來說,默認(rèn)的端口是80。
應(yīng)用名:在同一個應(yīng)用服務(wù)器上可能運(yùn)行多個Web應(yīng)用,這是允許的,我們在訪問某個應(yīng)用的時候,需要指定所訪問的Web應(yīng)用,這個路徑通常是Web應(yīng)用文件夾的名字,但是可以配置成其它的。應(yīng)用的配置參見Web應(yīng)用部署相關(guān)內(nèi)容。
文件夾名:在同一個Web應(yīng)用中可能會根據(jù)不同的功能創(chuàng)建不同的文件夾來存放不同功能模塊的文件,為了訪問這個文件,必須指定它所在的文件夾。
文件:要訪問的jsp文件。
需要注意的是文件夾名和文件名共同確定了這個文件,相當(dāng)于文件的完整路徑。對于Servlet的訪問,使用的不是文件名,而是在web.xml中配置的路徑,可以參加Servlet部分內(nèi)容。
例:如何訪問上面的Web應(yīng)用的中的a_a.jsp文件,假設(shè)在本機(jī)上訪問,使用的端口是8083,部署的時候使用的應(yīng)用的名字就是filepathweb。
路徑應(yīng)該這樣寫:
http://127.0.01:8083/filepathweb/aa/a_a.jsp
或者
http://localhost:8083/filepathweb/aa/a_a.jsp
需要解釋幾個問題:
(1)有人說,上網(wǎng)的時候從來不需要輸入端口,原因是使用了默認(rèn)端口,Web應(yīng)用的默認(rèn)端口是80。
(2)有人說,從來也不需要輸入應(yīng)用的名字,原因是設(shè)置了默認(rèn)應(yīng)用,關(guān)于默認(rèn)應(yīng)用請參考本書中的其它相關(guān)內(nèi)容。
(3)有人說,也不需要輸入要訪問的文件名,原因是設(shè)置了歡迎網(wǎng)頁,在web.xml中設(shè)置的,關(guān)于這部分內(nèi)容,請參考本書中其它相關(guān)內(nèi)容。
相對路徑
上面介紹了對于某個文件的訪問方式,這里的訪問方式叫絕對路徑,也就是我們使用完整的路徑,在web應(yīng)用的文件相互訪問的時候,除了可以使用絕對路徑,還可以使用相對路徑。例如,我們要在a_a.jsp文件中訪問a_b.jsp,直接寫絕對路徑肯定沒有問題,但是寫起來不方便,另外如果部署的時候Web應(yīng)用的名字發(fā)生變化了,訪問的路徑都需要改變,所以我們應(yīng)該使用相對路徑。
相對路徑有兩種情況:第一種,相對于當(dāng)前文件的位置;第二種,相對于應(yīng)用的位置。
相對路徑在使用的時候需要知道以下知識:
(1)當(dāng)前路徑是".",表示當(dāng)前路徑。
(2)上一級路徑是"..",要訪問上一級文件夾,就需要寫"./../"。
(3)相對于應(yīng)用的路徑直接寫"/"。
根據(jù)上面的情況在a_a.jsp文件中訪問a_b.jsp有以下3種方式(通過超鏈的方式):
<a href="a_b.jsp">a_b.jsp</a><br>
<a href="http://localhost:8083/filepathweb/aa/a_b.jsp">a_b.jsp</a><br>
<a href="/filepathweb/aa/a_b.jsp">a_b.jsp</a><br>
第一種情況,就是相對路徑,因?yàn)閍_a.jsp和a_b.jsp在同一個文件夾,所以直接寫a_b.jsp,系統(tǒng)會在a_a.jsp所在的文件夾查找a_b.jsp,使用的相對于當(dāng)前文件的路徑。
第二種情況,使用了絕對路徑,就是前面介紹過的。
第三種情況,使用了應(yīng)用的位置信息,然后只要寫在應(yīng)用中的位置就可以了。
這是訪問同一個文件的情況,如果要訪問不同文件夾的文件怎樣辦呢?例如,要在a_a.jsp中訪問bb文件夾中的b_a.jsp。
對于bb中的b_a.jsp的訪問,上面使用的3種方法中的第二種和第三種同樣可以直接使用,但是相對于當(dāng)前文件的路徑比較麻煩,下面是在a_a.jsp中訪問b_a.jsp的3種方式:
<a href="./../bb/b_a.jsp">a_b.jsp</a><br>
<a href="http://localhost:8083/testweb/bb/b_a.jsp">a_b.jsp</a><br>
<a href="/testweb/bb/b_a.jsp">a_b.jsp</a><br>
需要說明的是相對于路徑,如果當(dāng)前文件夾比較深,可以多次使用"../","./"表示當(dāng)前文件夾。
希望本文所述對大家的JSP程序設(shè)計有所幫助。
- java中獲取類加載路徑和項(xiàng)目根路徑的5種方式分析
- java之路徑分隔符介紹
- java解析出url請求的路徑和參數(shù)鍵值對類(解析出url請求的路徑,包括頁面)
- java獲得平臺相關(guān)的行分隔符和java路徑分隔符的方法
- Java獲取此次請求URL以及服務(wù)器根路徑的方法
- java 用遞歸獲取一個目錄下的所有文件路徑的小例子
- java獲取系統(tǒng)路徑字體、得到某個目錄下的所有文件名、獲取當(dāng)前路徑
- java 獲取項(xiàng)目文件路徑實(shí)現(xiàn)方法
- 基于獲取JAVA路徑,包括CLASSPATH外的路徑的方法詳解
- JAVA獲取文件絕對路徑的方法
- Java實(shí)現(xiàn)利用廣度優(yōu)先遍歷(BFS)計算最短路徑的方法
- Java Web中解決路徑(絕對路徑與相對路徑)問題
相關(guān)文章
jsp輸出當(dāng)前時間的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨sp輸出當(dāng)前時間的實(shí)現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06JSP教程之使用JavaBean完成業(yè)務(wù)邏輯的方法
這篇文章主要介紹了JSP教程之使用JavaBean完成業(yè)務(wù)邏輯的方法,較為詳細(xì)的分析了JavaBean完成業(yè)務(wù)邏輯所涉及的相關(guān)概念及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09JSP頁面中文參數(shù)的傳遞(get和post方法分析)
JSP頁面中文參數(shù)傳遞在實(shí)際的編程中是十分有用的,get和post方法更是十分的常見,那如何掌握好這些方法呢?本文將會向你實(shí)現(xiàn)這些方法的具體事宜2013-08-08jsp頁面中EL表達(dá)式被當(dāng)成字符串處理不顯示值問題的解決方法
下面小編就為大家?guī)硪黄猨sp頁面中EL表達(dá)式被當(dāng)成字符串處理不顯示值問題的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09