以下是參考别人的部落格做出的自我總結:
詳情可參考https://www.cnblogs.com/jasonHome/p/5551358.html
1.絕對路徑的問題
1)開發時建議編寫”絕對路徑”:寫絕對路徑肯定沒問題,但是寫相對路徑可能會出問題
2)編寫絕對路徑可以避免上述問題:
① 在javaWEB中什麼叫“絕對路徑”:相對于目前 web 應用的根路徑(contextPath)的路徑。即,任何的路徑都必須帶上contextPath
如:http://localhost:8080/(目前web應用的上下文路勁)/a.jsp
② 如何編寫:若 / 代表站點目錄,則在前面加上 contextPath 就可以
request.getContextPath();
application.getContextPath();
3)javaWEB 開發中的 / 到底代表什麼?
① 目前 web 應用的根路徑:http://localhost:8080/contextPath/ :若 / 需要交Servlet 容器來處理
> 請求轉發時:request.getRequestDispatcher(“/b.jsp”).forward(request,response);
> 在web.xml檔案中,映射 servlet 通路路徑:
TestServlet
/TestServlet
> 各種定制标簽中的 /
② WEB 站點的根路徑:http://localhost:8080/ :若 / 交由浏覽器來處理
> 超連結:超連結
> 表單中的action:
> 做請求重定向的時候:response.sendRdirect(“/a.jsp”)
總結:開發時一定要寫絕對路徑,即在前面加上“/”
當加/ 即為絕對路徑
不加/ 即為相對路徑
例:ls opt
ls /home/oracle/opt/