1. 程式人生 > 其它 >JavaWeb專案圖片或者檔案的路徑正確明明是卻訪問不到是什麼原因?

JavaWeb專案圖片或者檔案的路徑正確明明是卻訪問不到是什麼原因?

技術標籤:javajspweb

JavaWeb專案圖片或者檔案的路徑正確明明是卻訪問不到是什麼原因?

1.先排查是真的路徑正確還是以為的路徑正確

首先搞懂相對路徑的正確寫法
這裡插入一個視訊連線
相對路徑的寫法連線:link.

相對路徑是相對與你目前正在寫的檔案來說的,打個比方這個現在正在用的login.jsp檔案是我,我想要用的WEB-INF—>image—>1.jpg
案例1
那麼現在我們可以看到login.jsp與web-inf資料夾是同級的,就相當於我和WEB-INF是同輩人

那麼我們先寫下初步的路徑 WEB-INF
在這裡插入圖片描述

然後我們可以看到WEB-INF下面有個image資料夾,這個資料夾下面才是1.jpg
也就相當於我要找WEB-INF的孫子
那麼連線應該先找跟我同輩的爺爺WEB-INF,再找它的兒子image,再找他的孫子1.jpg
所以整個路徑就是WEB-INF/image/1.jpg

2.WEB-INF內的內容瀏覽器是訪問不到的

web-inf是放重要檔案資訊的地方,放在web-inf裡面的東西瀏覽器是訪問不到的
這時候你要呼叫web-inf裡面的圖片,那肯定調用不了呀baby

解決思路

1.把網頁寫在web-inf裡面
1.把原本的jsp檔案放到web-inf裡面

2.在web-inf的外面新建一個jsp檔案,放置如下這段程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:redirect url="loginForm.action"/>//跳轉到所需的servlet

JSTL 的<c:redirect>標籤可以幫助你重定向到指定的servlet中,你就可以通過這個servlet跳轉到你需要的頁面裡面了,而且因為login.jsp和它所需要的檔案都在伺服器內,所以你直接呼叫也不會出現失效的情況了。

2.把你要用到的檔案放在WEB-INF外面
當然這個不推薦啦,不是很安全,如果你只是做練習的話還是可以試試的