更新時間:2020-10-22 17:53:57 來源:動力節(jié)點(diǎn) 瀏覽1409次
相對路徑就是指由這個文件所在的路徑引起的跟其它文件(或文件夾)的路徑關(guān)系。Java Web項(xiàng)目發(fā)布時,其實(shí)只將WebContent文件夾部署到服務(wù)器上,并將文件夾名WebContent改為項(xiàng)目名,java源代碼并不發(fā)布,而是運(yùn)行存放在WebContent—>WEB-INF—>classes目錄下的經(jīng)過編譯的class字節(jié)碼文件。因此,需要我們找到Java Web相對路徑來訪問源代碼。
1.在web項(xiàng)目中,若我們在訪問路徑的最前端不加“/”,那就是使用相對路徑,如下圖所示
上面圖中是一個jsp頁面,它是項(xiàng)目中WebContent下的index.jsp。這里面寫了一個form表單,將表單提交給LoginServlet,而action中沒有添加“/”,則這里就是用了相對路徑。而這里的相對路徑指的是相對于當(dāng)前的這個前端頁面所在的文件夾(我們將在第4步進(jìn)行測試)。
2.首先我們需要知道,在eclipse的web項(xiàng)目中,前端頁面的默認(rèn)起始路徑就是WebContent.現(xiàn)在我們訪問我這個項(xiàng)目中的index.jsp,那路徑如下圖:
上圖中,圈1是代表項(xiàng)目名,有人可能會問,你剛剛不是說前端頁面的默認(rèn)起始路徑是webContent嗎?這里沒有看見webContent這字段,這是因?yàn)閖ava web項(xiàng)目發(fā)布時,其實(shí)只將WebContent文件夾部署到服務(wù)器上,并將文件夾名WebContent改為項(xiàng)目名(這里項(xiàng)目就是叫TestWeb),圈2是文件名。
3.我們還需要知道,若需要訪問servlet這種在src下的Java文件,也是直接“IP地址/項(xiàng)目名/servlet”,不需要加上包名。如下圖,我將訪問我項(xiàng)目下LoginServlet。
4.測試
當(dāng)前我們jsp中代碼如下(不加 / ,使用相對路徑,看能否訪問到LoginServlet):
運(yùn)行結(jié)果(點(diǎn)擊提交后):
可以訪問到LoginServlet,接下來我將使用在WebContent文件下的Test文件下的index2.jsp文件進(jìn)行測試,下面為index2.jsp的代碼(依舊是使用相對路徑)。
運(yùn)行之后的結(jié)果圖如下:
大家注意了:此時路徑中有改變。當(dāng)我點(diǎn)擊提交后,運(yùn)行結(jié)果圖如下:
從上圖可以看出來,此時相對路徑是http://localhost:8080/TestWeb/Test/,因?yàn)槲覀僫ndex2.jsp的頁面是在Test文件夾下的,所以此時相對路徑是 相對于index2.jsp的路徑,自然會多個Test路徑,而我們知道要訪問src下的servlet 路徑應(yīng)該是,“IP地址/項(xiàng)目名/servlet”,此時多了個Test 怎么可能可以訪問到呢。那怎么辦呢,這時,我們只能使用絕對路徑來訪問。關(guān)于訪問Java Web絕對路徑的知識,小伙伴們可以在本站的Java Web教程中尋找哦。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743