解決/WEB-INF目錄下的jsp頁面引入webRoot下的Js、css和圖片的問題
轉自:http://blog.csdn.net/qq_18875541/article/details/69390871
通常把jsp頁面放在webRoot的/WEB-INF下可以防止訪問者直接輸入頁面。
而webRoot的/WEB-INF下的頁面是受保護的,用戶無法通過形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp來訪問,他們的訪問都必須透過struts處理請求才能達到。
然而,當把頁面放在/web-inf下面時,JSP頁面還是避免不了跟“外部”的js,css,圖片“交互”,因為需要引入一些webRoot/css, webRoot/js, webRoot/images,而此時很容易引入失敗,一般來說,此時用相對路徑行不通了,所以必須使用絕對路徑!下面一一總結。
一、引入webRoot/css
<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>
這個<%=request.getContextPath()%>即為/hh_test(項目名稱),而<%=request.getContextPath()%>/css則相當於用絕對路徑直接定位到了webRoot/css.
二、引入webRoot/js
<script type="text/javascript" language="javascript" src="<%=request.getContextPath()%>/js/jquery-1.4.4.min.js"></script>
三、引入webRoot/images
<img src="<%=request.getContextPath()%>/images/4.gif" alt="加載外部圖片" />
小結:最好把jsp頁面放在/WEB-INF下,而jsp頁面引入"外部”js,css,images時,必須獲取項目的根路徑,再加上/css(或/js 或/images)即使用絕對路徑的方法,而不是相對路徑的方法,才能訪問到放置在webRoot下的資源!
解決/WEB-INF目錄下的jsp頁面引入webRoot下的Js、css和圖片的問題