更新時間:2021-09-06 12:25:17 來源:動力節(jié)點(diǎn) 瀏覽1344次
要知道我們在ide中新建的項(xiàng)目,當(dāng)發(fā)布到服務(wù)器上時,src中內(nèi)容是不會發(fā)布的,發(fā)布的是src中編譯好的class文件,且class文件放在WebContent下的WEB-INF中的一個文件,
當(dāng)我們?nèi)ピL問發(fā)布的網(wǎng)址時路徑會發(fā)生變化!!!!
絕對路徑由服務(wù)器解析,到項(xiàng)目名
要區(qū)分相對路徑和絕對路徑。
更要區(qū)分哪個是瀏覽器解析,哪個是服務(wù)器的解析。以及他們對應(yīng)的基準(zhǔn)地址。
相對路徑:參考文件所在位置,去查找其他資源
同一級目錄下的資源可以通過文件名互相引用
因?yàn)?a href="/servlet/" target="_blank" title="Servlet教程">Servlet在配置文件中被虛擬路徑映射到了項(xiàng)目的根目錄下,和index頁面在同一級目錄
瀏覽器解析頁面中的相對路徑時不知道服務(wù)器中的目錄結(jié)構(gòu),只會參考url地址欄地址
重定向后的頁面中,相對路徑仍然可以使用,地址欄地址始終和打開的資源對應(yīng)[開發(fā)時和瀏覽器解析時參考位置始終不變]
轉(zhuǎn)發(fā)后的頁面中,相對路徑失效了 , 地址欄地址不變,但是打開的頁面變了[轉(zhuǎn)發(fā)造成瀏覽器解析和服務(wù)器開發(fā)的相對路徑參考位置發(fā)生了變化,不一樣]
由于開發(fā)中轉(zhuǎn)發(fā)使用的較多,所以不推薦直接使用相對路徑(但是通過其它方法,用的最多的還是相對路徑)
一定理解區(qū)分轉(zhuǎn)發(fā)和重定向
在相對路徑可能失效的頁面中 使用絕對路徑解決問題
絕對路徑: 任何情況下都不會失效的路徑,以/開始,不會參考文件的相對位置
情況1: 由瀏覽器解析的絕對路徑,默認(rèn)的基準(zhǔn)地址為 http://主機(jī)地址:端口號[到服務(wù)器]
html標(biāo)簽中的地址: a、form、img、link、script
重定向是服務(wù)器設(shè)置一個地址交給瀏覽器:response.sendRedirect(request.getContextPath()+"/a/1.html");
情況2: 由服務(wù)器解析的絕對路徑,基準(zhǔn)地址為http://主機(jī)地址:端口號/項(xiàng)目名[到項(xiàng)目]
web.xml中url-pattern:映射地址
轉(zhuǎn)發(fā)地址:轉(zhuǎn)發(fā)是在服務(wù)器內(nèi)部執(zhí)行的:request.getRequestDispatcher("/a/1.html")
使用一般多
給相對路徑設(shè)置一個基準(zhǔn)地址,讓相對路徑不在參考相對位置,只和基準(zhǔn)地址拼接
base標(biāo)簽: 使用多
作用: 給頁面的相對路徑提供基準(zhǔn)地址
使用: 在頁面head中使用路徑前 設(shè)置base標(biāo)簽,href屬性中設(shè)置基準(zhǔn)路徑
以上就是動力節(jié)點(diǎn)小編介紹的"JavaWeb路徑問題",希望對大家有幫助,想了解更多可查看JavaWeb教程。動力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
初級 202925
初級 203221
初級 202629
初級 203743