1. 程式人生 > >解決/WEB-INF目錄下的jsp頁面引入webRoot下的Js、css和圖片的問題

解決/WEB-INF目錄下的jsp頁面引入webRoot下的Js、css和圖片的問題

type ref 引入 即使 處理 back round tex 定位

轉自: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和圖片的問題