天天看點

相對路徑與絕對路徑 ${pageContext.request.contextPath}

絕對路徑:是從盤符開始的路徑,形如

c:\windows\system32\cmd.exe

相對路徑:是從目前路徑開始的路徑,假如目前路徑為c:\windows

要描述上述路徑,隻需輸入

system32\cmd.exe

實際上,嚴格的相對路徑寫法應為

.\system32\cmd.exe

其中,.表示目前路徑,在通道情況下可以省略,隻有在特殊的情況下不能省略。

假如目前路徑為c:\program files

要調用上述指令,則需要輸入

..\windows\system32\cmd.exe

其中,..為父目錄。

目前路徑如果為c:\program files\common files

則需要輸入

….\windows\system32\cmd.exe

拿着這了解應該比程式裡面好了解得多了。

<code>${pagecontext.request.contextpath}</code>等價于<code>&lt;%=request.getcontextpath()%&gt;</code>或者可以說是<code>&lt;%=request.getcontextpath()%&gt;</code>的el版

意思就是取出部署的應用程式名或者是目前的項目名稱

比如我的項目名稱是springmvc 在浏覽器中輸入為<code>http://localhost:8080/springmvc/login.jsp</code>

是以我們項目中應該這樣寫${pagecontext.request.contextpath}/login.jsp

說一下親身的例子大概就明白了。這裡我先用的是相對路徑,很多種情況下都沒出錯。

相對路徑與絕對路徑 ${pageContext.request.contextPath}

你看這個delete操作,我也是用的相對路徑,那為甚麼不會出錯呢,因為請求路徑隻有一層,沒有任何占位符,當hiddenhttpmethodfilter轉換為delete請求的時候會去掉一層,是以不會出錯,請求路徑變成<code>http://localhost:8080/emp/1001</code>

相對路徑與絕對路徑 ${pageContext.request.contextPath}

但是這個edit就不容樂觀了。

相對路徑與絕對路徑 ${pageContext.request.contextPath}

本來路徑上有占位符的存在,是以轉換的時候就不會認全。

相對路徑與絕對路徑 ${pageContext.request.contextPath}

就會出現這樣的鬧劇,請求多層本來就沒有handler處理的路徑。

是以告誡大家,請盡可能多的使用相對路徑。

繼續閱讀