在非spring MVC攔截“/“的情況下:
web-inf是受保護的,不能直接存取
下面是解決方案
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
<script type="text/javascript" src="${path}/js/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="${path}/js/jquery.datepick.js"></script>
<script type="text/javascript" src="${path}/js/jquery.datepick-zh-CN.js"></script>
<link type="text/css" href="${path}/css/smoothness.datepick.css" rel="stylesheet">
首先,css/js/html沒有必要放在WEB-INF下。
最終這些會被原封不動的展現在用戶端,所以訪問安全根本就不會成為問題。
jsp放在web-inf下,原因主要有兩個
1. 遠古時代的模式會把商務邏輯,資料庫連接等敏感資訊寫在jsp裡面,被使用者直接存取會有安全問題。
現代模式裡這個不再成為問題,不應該成為問題。
2. jsp是在伺服器端啟動並執行,而且通常都需要其他程式支援——比如幕後處理好資料再讓jsp渲染等,使用者直接存取一則沒有意義,二則會拋異常,這些都浪費伺服器資源。
其次,如果你一定要放在web-inf下。
需要弄個servlet來forward,或者讀取檔案後寫在response上。
如果是spring,可以參考
http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html
中的
17.15.6 Configuring Serving of Resources