首先,因爲WEB-INF作爲安全目錄,其目錄下的內容是無法直接通過get方式連接的(類似a標籤的href,重定向等)
以下是關於一些涉及目錄跳轉的總結:
外路徑訪問WEB-INF下的JSP
需要先跳轉到servlet,在servlet中使用轉發 request.getRequestDispatcher(“path”).forward(request.response)來實現向WEB-INF下的jsp跳轉
如:
request.getRequestDispatcher("/WEB-INF/dest.jsp").forward(request, response);
WEB-INF路徑下的文件訪問外部資源:
這裏因爲路徑的原因,需要獲取項目路徑追溯資源的位置:
如:
獲取項目路徑:
<% pageContext.setAttribute("APP_PATH",request.getContextPath()); %>
獲取資源:
<img alt="test" src="${APP_PATH }/a.png"><br>
這樣能夠獲取根目錄下的a.png圖片
或者直接使用
<td background="${pageContext.request.contextPath}/images/bodybg.jpg">
URL傳參的問題
測試發現,如果是外路徑的資源,通過類似Servlet-Name?param=vallue的方式可以傳遞出參數,
而WEB-INF下的jsp文件通過這種參數訪問Servlet參數會丟失。