更新時(shí)間:2020-10-22 17:53:57 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1664次
相對(duì)路徑就是指由這個(gè)文件所在的路徑引起的跟其它文件(或文件夾)的路徑關(guān)系。Java Web項(xiàng)目發(fā)布時(shí),其實(shí)只將WebContent文件夾部署到服務(wù)器上,并將文件夾名WebContent改為項(xiàng)目名,java源代碼并不發(fā)布,而是運(yùn)行存放在WebContent—>WEB-INF—>classes目錄下的經(jīng)過(guò)編譯的class字節(jié)碼文件。因此,需要我們找到Java Web相對(duì)路徑來(lái)訪問(wèn)源代碼。
1.在web項(xiàng)目中,若我們?cè)谠L問(wèn)路徑的最前端不加“/”,那就是使用相對(duì)路徑,如下圖所示

上面圖中是一個(gè)jsp頁(yè)面,它是項(xiàng)目中WebContent下的index.jsp。這里面寫了一個(gè)form表單,將表單提交給LoginServlet,而action中沒(méi)有添加“/”,則這里就是用了相對(duì)路徑。而這里的相對(duì)路徑指的是相對(duì)于當(dāng)前的這個(gè)前端頁(yè)面所在的文件夾(我們將在第4步進(jìn)行測(cè)試)。
2.首先我們需要知道,在eclipse的web項(xiàng)目中,前端頁(yè)面的默認(rèn)起始路徑就是WebContent.現(xiàn)在我們?cè)L問(wèn)我這個(gè)項(xiàng)目中的index.jsp,那路徑如下圖:

上圖中,圈1是代表項(xiàng)目名,有人可能會(huì)問(wèn),你剛剛不是說(shuō)前端頁(yè)面的默認(rèn)起始路徑是webContent嗎?這里沒(méi)有看見(jiàn)webContent這字段,這是因?yàn)閖ava web項(xiàng)目發(fā)布時(shí),其實(shí)只將WebContent文件夾部署到服務(wù)器上,并將文件夾名WebContent改為項(xiàng)目名(這里項(xiàng)目就是叫TestWeb),圈2是文件名。
3.我們還需要知道,若需要訪問(wèn)servlet這種在src下的Java文件,也是直接“IP地址/項(xiàng)目名/servlet”,不需要加上包名。如下圖,我將訪問(wèn)我項(xiàng)目下LoginServlet。

4.測(cè)試
當(dāng)前我們jsp中代碼如下(不加 / ,使用相對(duì)路徑,看能否訪問(wèn)到LoginServlet):

運(yùn)行結(jié)果(點(diǎn)擊提交后):


可以訪問(wèn)到LoginServlet,接下來(lái)我將使用在WebContent文件下的Test文件下的index2.jsp文件進(jìn)行測(cè)試,下面為index2.jsp的代碼(依舊是使用相對(duì)路徑)。

運(yùn)行之后的結(jié)果圖如下:

大家注意了:此時(shí)路徑中有改變。當(dāng)我點(diǎn)擊提交后,運(yùn)行結(jié)果圖如下:

從上圖可以看出來(lái),此時(shí)相對(duì)路徑是http://localhost:8080/TestWeb/Test/,因?yàn)槲覀僫ndex2.jsp的頁(yè)面是在Test文件夾下的,所以此時(shí)相對(duì)路徑是 相對(duì)于index2.jsp的路徑,自然會(huì)多個(gè)Test路徑,而我們知道要訪問(wèn)src下的servlet 路徑應(yīng)該是,“IP地址/項(xiàng)目名/servlet”,此時(shí)多了個(gè)Test 怎么可能可以訪問(wèn)到呢。那怎么辦呢,這時(shí),我們只能使用絕對(duì)路徑來(lái)訪問(wèn)。關(guān)于訪問(wèn)Java Web絕對(duì)路徑的知識(shí),小伙伴們可以在本站的Java Web教程中尋找哦。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)