此答案為轉載過來的,我是作為筆記,如有侵權,請原諒;
優點: 它的作用是取出部署應用程序的名字,這樣不管如何部署,所用的路徑都是正確的。(得到的是一個絕對路徑)
缺點:其他工具無法正確解析它
什么是當前的項目名稱呢?
假定你的web application 名稱為test,這個test就是當前的項目名稱,不過你在瀏覽器中輸入請求路徑時,如:
http//:localhost:8080/test/hello.jsp
${pageContext.request.contextPath}或<%request.getContextPath%>就是從這個請求路徑(URL)上截取(是截取)----> /test 看清楚,前面是有"/",而這個“/”代表的是-->"http//:localhost:8080",看清楚這里是沒有"/"的!
所以才有了網上那些文章寫的,如果我們:
<form action="${pageContext.request.contextPath}/hello.jsp">這樣寫路徑永遠對,當然對了,因為你自己翻譯${pageContext.request.contextPath}/hello.jsp其中的含義,不就是
http//:localhost:8080/test/hello.jsp 相當於你寫了一全路徑!當然前提是你的JSP頁面等等必須放置的位置正確才可以---->所以才說明路徑永遠正確
為什么這么要做呢?因為學過一些MVC模式的程序員都知道,JSP的作用是用來顯示的(表現的),其他的作用最好不要在這個頁面上顯示,尤其是Java代碼!所以就用EL表達式來替代類似有“<%%>”這樣的代碼格式
————————————————
版權聲明:本文為CSDN博主「宋先生的客棧」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/KO_612/article/details/96621521