更新時間:2021-09-06 12:25:17 來源:動力節點 瀏覽1251次
要知道我們在ide中新建的項目,當發布到服務器上時,src中內容是不會發布的,發布的是src中編譯好的class文件,且class文件放在WebContent下的WEB-INF中的一個文件,
當我們去訪問發布的網址時路徑會發生變化!!!!
絕對路徑由服務器解析,到項目名
要區分相對路徑和絕對路徑。
更要區分哪個是瀏覽器解析,哪個是服務器的解析。以及他們對應的基準地址。
相對路徑:參考文件所在位置,去查找其他資源
同一級目錄下的資源可以通過文件名互相引用
因為Servlet在配置文件中被虛擬路徑映射到了項目的根目錄下,和index頁面在同一級目錄
瀏覽器解析頁面中的相對路徑時不知道服務器中的目錄結構,只會參考url地址欄地址
重定向后的頁面中,相對路徑仍然可以使用,地址欄地址始終和打開的資源對應[開發時和瀏覽器解析時參考位置始終不變]
轉發后的頁面中,相對路徑失效了 , 地址欄地址不變,但是打開的頁面變了[轉發造成瀏覽器解析和服務器開發的相對路徑參考位置發生了變化,不一樣]
由于開發中轉發使用的較多,所以不推薦直接使用相對路徑(但是通過其它方法,用的最多的還是相對路徑)
一定理解區分轉發和重定向
在相對路徑可能失效的頁面中 使用絕對路徑解決問題
絕對路徑: 任何情況下都不會失效的路徑,以/開始,不會參考文件的相對位置
情況1: 由瀏覽器解析的絕對路徑,默認的基準地址為 http://主機地址:端口號[到服務器]
html標簽中的地址: a、form、img、link、script
重定向是服務器設置一個地址交給瀏覽器:response.sendRedirect(request.getContextPath()+"/a/1.html");
情況2: 由服務器解析的絕對路徑,基準地址為http://主機地址:端口號/項目名[到項目]
web.xml中url-pattern:映射地址
轉發地址:轉發是在服務器內部執行的:request.getRequestDispatcher("/a/1.html")
使用一般多
給相對路徑設置一個基準地址,讓相對路徑不在參考相對位置,只和基準地址拼接
base標簽: 使用多
作用: 給頁面的相對路徑提供基準地址
使用: 在頁面head中使用路徑前 設置base標簽,href屬性中設置基準路徑
以上就是動力節點小編介紹的"JavaWeb路徑問題",希望對大家有幫助,想了解更多可查看JavaWeb教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習