記錄自己的學習歷程--自己對於JSP中pageContext物件的理解
關於pageContex--頁面上下文物件自己的理解,只是作為新手學習很淺顯的認識,如有誤,請大牛指出,或者請告訴我更深的理解,感激不盡!
新建jsp1和jsp2,目錄結構如下:
在jsp1頁面中新增一個超連結<a href="jsp2.jsp">跳轉到jsp2</a>,點選超連結,將會出現404錯誤,找不到jsp2.jsp。這是什麼原因,按理說jsp1.jsp和jsp2.jsp位於同一目錄下,按相對路徑查詢應該能在當前目錄下找到,但是為什麼找不到呢?原因在於我們建立一個jsp頁面時,編譯器會預設為我們加上下圖幾句話
在頁面頂部java小指令碼中加入”System.out.print(basePath)”,重新整理頁面控制檯會輸出”http://localhost:8088/BookShop/”這句話,這句話就是專案完整的路徑,而<base href="<%=basePath%>">這句話的意思就是從根目錄開始查詢,所以當在jsp1.jsp向jsp2.jsp跳轉時,預設就是從根路徑開始查詢jsp2.jsp,由於jsp2.jsp在WebRoot目錄下的jsp資料夾中,並不在WebRoot目錄下,所以就無法找到。想要找到jsp2必須將超連結寫成
如果去掉 <base href="<%=basePath%>"這句話,就代表不是從專案根目錄開始查詢,這樣<a href="jsp2.jsp">跳轉到jsp2</a>就是相對路徑查詢,就可以成功從當前目錄jsp資料夾下找到了jsp2.jsp。
${pageContext.request.contextPath }就是輸出web站點的根目錄名稱,和<base href="<%=basePath%>"