JavaWeb 專案中的絕對路徑和相對路徑以及問題的解決方案
最近在做JavaWeb專案,總是出現各種的路徑錯誤,而且發現不同情況下 / 所代表的含義不同,導致在除錯路徑上浪費了大量時間。
在JavaWeb專案中儘量使用絕對路徑 因為使用絕對路徑是絕對不會出錯的,而使用相對路徑可能會出現錯誤。
首先 說下在JavaWeb專案中的絕對路徑和相對路徑的含義
絕對路徑: 相對於當前Web應用根路徑的路徑 也就是任何路徑都必須要帶上contextPath = http://localhost:8080/WebProject/
相對路徑: 相對於當前目錄的路徑為相對路徑 通常直接用/ 來表示
因為使用相對路徑 中的 / 在JavaWeb中的含義在不同的情況下含義不同,所以使用相對路徑時可能會出現問題
下面就分析 / 在JavaWeb含義
JavaWeb專案中 / 的不同含義
JavaWeb專案中的 / 可能表示如下含義
當前Web應用的根路徑(也就是絕對路徑) http://localhost:8080/WebProject/
有以下情況
> 請求轉發時
request.getRequestDispatcher("/message/a.jsp").forward(request,response);
> web.xml 檔案中對映Servlet 訪問路徑
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
> 各種定製標籤中的 /
當前Web站點的根路徑 http://localhost:8080/
有以下情況
> 超連結
<a href=""></a>
> 表單中的action<form action="" method="post"></form>
> 請求重定向的時候
response.sendRedirect("");
綜合上述情況,我們應該在web專案開發中使用絕對路徑也就是應該帶上contextPath
而contextPath可以由request.getContextPath 或者 application.getContextPath 來獲取
所以當遇到超連結 表單中的action 或者 請求重定向的時候,應該在其前面加上contextPath 而不能直接使用相對路徑 /
為了保險起見,大家對專案中出現任何的訪問路徑,比如css 或者js程式碼的呼叫的路徑都可以使用絕對路徑來防止出現問題
相關文章
- JAVAWEB——絕對路徑和相對路徑,到底加不加“/“,以及解決方案JavaWeb
- 檔案的相對路徑和絕對路徑以及根相對路徑
- web專案絕對路徑與相對路徑的問題Web
- JSP 和 Servlet 中的絕對路徑和相對路徑問題JSServlet
- 檔案絕對路徑和相對路徑
- html中的路徑的介紹:絕對路徑和相對路徑HTML
- Linux檔案的路徑定位-相對路徑和絕對路徑Linux
- 絕對路徑和相對路徑的區別,
- 絕對路徑和相對路徑的區別
- Jsp相對路徑和絕對路徑JS
- JSP、Servlet中的相對路徑和絕對路徑 頁面跳轉問題JSServlet
- Qt的相對路徑轉為絕對路徑QT
- HTML絕對路徑與相對路徑HTML
- 05_Linux相對路徑和絕對路徑Linux
- 最最基礎的乾貨:Linux中的絕對路徑和相對路徑Linux
- 深入解析Java絕對路徑與相對路徑Java
- javascript將相對路徑修改為絕對路徑JavaScript
- Linux中絕對路徑和相對路徑有什麼區別?Linux
- javaweb相對路徑file使用JavaWeb
- 解決基於TypeScript 的 RN專案相對路徑引入元件的問題TypeScript元件
- 相對路徑轉換為絕對路徑的程式碼例項
- html中想把圖片絕對路徑 改成相對路徑怎麼操作?HTML
- struts/Servlet,action轉到jsp後,路徑問題(struts2,jsp路徑,action路徑,action跳轉,相對路徑,絕對路徑)...ServletJS
- python如何將相對路徑轉換為絕對路徑?Python
- 使用Javascript將相對路徑地址轉換為絕對路徑JavaScript
- 關於函式由絕對路徑轉為相對路徑函式
- JavaScript中獲取當前專案的絕對路徑JavaScript
- VsCode相對路徑的問題VSCode
- JavaWeb中讀取【專案路徑下檔案】的路徑問題:this.getServletContext().getRealPath()JavaWebServletContext
- 好程式設計師web前端分享絕對路徑與相對路徑的引用程式設計師Web前端
- Linux中絕對路徑和相對路徑是什麼?二者有何區別?Linux
- nodejs路徑處理方法和絕對路徑NodeJS
- 好程式設計師web分享圖片標籤、絕對路徑和相對路徑程式設計師Web
- 好程式設計師分享html圖片絕對路徑改相對路徑程式設計師HTML
- 專案中碰見的錯誤(三) 對路徑的訪問被拒絕
- HTML中相對路徑的方式引用檔案HTML
- 讓Web專案中Velocity的#parse支援相對路徑Web
- Java工程路徑及相對路徑(轉載)Java