首先辨析“/”與“\” window中的路徑一般用“\”; java中的路徑一般用“/”;如果用“\”需要對其轉義成“\\” 1、絕對路徑 以根目錄作為參考點的的文件或文件夾所在的路徑,是硬碟上的真實路徑。具有唯一性的特點。 例如:C:\caosiege\python\project\C.py,代表 ...
首先辨析“/”與“\”
window中的路徑一般用“\”;
java中的路徑一般用“/”;如果用“\”需要對其轉義成“\\”
1、絕對路徑
以根目錄作為參考點的的文件或文件夾所在的路徑,是硬碟上的真實路徑。具有唯一性的特點。
例如:C:\caosiege\python\project\C.py,代表的是C.py的絕對路徑
2、相對路徑
相對於某個基準目錄的路徑。不具有唯一性。
例如:在servlet中,“/”代表web應用的根目錄,與物理路徑相對應。
在C:\caosiege中以上的絕對路徑可以寫成.\python\project\C.py這種相對路徑的形式。其中“.\”表示當前路徑。
“..\”代表上一級目錄。
3、引伸:
1)伺服器端的地址
伺服器端的相對地址是指相對於你的web應用的地址,這個地址是在伺服器端解析的。也就是說這個時候jsp與servlet的相對地址是相對於你的web應用。也就是相對於“http/192.168.0.1/webapp”。
2)客戶端的地址
所有的html頁面中的地址都是相對於伺服器的根目錄“http/192.168.0.1”,而不是web應用的目錄。
html中form表單的action屬性是相對於伺服器根目錄的,所以如果提交到xxx.jsp,action=“/webapp/user/xxx.jsp”或action = “<%=request.getContextPath()%>”+
“/user/xxx.jsp”。
一般情況下,在JSP/HTML頁面等引用的CSS,Javascript.Action等屬性前面最好都加上<%=request.getContextPath()%>,以確保所有的引用文件都屬於web應用中的目錄。
另外,應該儘量避免使用“/”,”./“,“../”等類似的相對該文件位置的相對路徑,這樣當文件移動時,很容易出問題。
4、獲取路徑的一些方法
根目錄所對應的絕對路徑: request.getRequestURI()
文件的絕對路徑 : application.getRealPath(request.getRequestURI());
當前web應用的絕對路徑 : application.getRealPath(“/”);
取得請求文件的上層目錄 : new File(application.getRealPath(request.getRequestURI())).getParent()
文件的絕對路徑 : request.getSession().getServletContext().getRealPath(request.getRequestURL())
當前web應用的絕對路徑 :servletConfig.getServletContext().getRealPath(“/”);
(ServletContext對象獲得幾種方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()