无法显示JSP页面中上载的图像,但在浏览器的地址栏中键入url时会显示

j9per5c4  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(124)

我的web Java项目用servlet/jsp可以上传图片(即使想也不是最好的方式),但是当我试图在表格中显示图片(使用JSTL)时,只有一个空白的图片,就像图片的url坏了一样,但是当我复制url图片并粘贴到浏览器的地址栏中时,图片如预期的那样显示出来,url是这样的:

file:///c:/Users/user/Documents/NetBeansProjects/Project1/target/Project-1.0-SNAPSHOT//images/image1.png

以下是在JSP页上的设置方式:

<img src="<c:out value="${requestScope.path}" /><c:out value="${test.image}" />" />

先谢了!

u3r8eeie

u3r8eeie1#

当您在浏览器的地址栏中键入带有文件协议的URL时,浏览器会向操作系统请求该文件。当您将同一URL放入HTML页上的img标记中时,浏览器现在会向HTTP请求该文件。但是,无法通过Internet访问该文件。为了执行所需操作,你必须让一个Servlet从文件系统中读取文件,然后把它放到一个HTTP响应中,当浏览器请求这个图像时,这个HTTP响应就可以被发送。2这是演示代码。

package rick;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
@WebServlet("/serveImage")
public class ServeImage extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("image/jpeg");
        FileInputStream fis = new FileInputStream("C:/Users/rick/Documents/RickProfile.jpeg");
        fis.transferTo(response.getOutputStream());
    }
}

然后用img标签请求它

<img src="serveImage" />

相关问题