jsp上传图片到tomcat,图片无法显示的问题

1.前言

不管是web项目,使用jsp上传图片,或者是使用ssm框架来上传图片,或是servlet + jsp 传统方式来上传图片到tomcat服务器。经常出现一个问题,就是图片无法显示的问题。

图示:

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_图片不显示问题

2.解决方案:


常规问题:

1. 检查图片路径,不管你是使用的相对路径,还是用的绝对路径, 如<img src=”${pageContext.servletContext.contextPath}/images/loginBG.jpg”/>,一般来说,图片显示不出来,百分之八十都是路径错误,你可以打印上传路径到控制台看看,如果是null,那么就是路径的问题,对比你的项目看你的路径是不是有问题?

图示:

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_图片不显示问题_02


这种情况,就是上传的路径根本不对,解决方法在下面。


2. 检查你的拼写问题,比如单词的大小写,包括*.jpg 不能写成 *.JPG了。


非正常问题:

3.上述都没有错误,但是图片还是上传不显示,而且eclipse等后台不报错,一切正常。
查看一个地方:你设置的上传路径那里,有没有加前缀!!! 因为路径是本地的文件夹下,不会自动加入前缀:
如:所以,需要加上: 前缀 \

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_图片不显示问题_03

修改后查看控制台输出path:

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_jsp上传图片不显示_04

运行项目就可以查看路径正确了,图片显示了:

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_jsp上传图片不显示_05

4.不要将images放在WEB-INF目录下,直接放在根目录下,因为web-inf目录客户机是无法访问的,只有通过在web.xml中配置才能访问,jsp动态生成的静态页面的上一级就是根目录,所以直接用:

<img src="{pageContext.servletContext.contextPath}/upload/1.jpg"

而不是:

img src="${pageContext.servletContext.contextPath}/WEB-INF/upload/1.jpg"

图示:

java 邮件发送图片 有的不显示 javaweb上传图片成功不显示_jsp上传图片不显示_06

上述几种方法是针对于jsp上传图片到tomcat,图片无法显示的问题。