jsp+servlet上传图片的系列问题

本文详细记录了在使用Eclipse和Tomcat进行图片上传时遇到的棘手问题,包括图片自动删除和虚拟路径配置失败的情况,并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsp+servlet上传图片本来是一个简单的问题,网上也有很多写得很好的代码可供参考。但实际上我在上传图片的过程中还是碰到了很多奇怪的问题,花费了很多时间,所以在这里记录一下当中碰到的一些问题。

笔者使用的是eclipse+tomcat7.0来部署web项目(后来才知道最大的问题才出在这里)。如果是直接将web项目部署在tomcat的webapps文件夹下,那么下面的问题就可以跳过了。

图片上传到tomcat服务器的项目目录下面后,只要调整代码,图片就会被自动删除

当时碰到这个问题的时候,相当的纳闷,也不怎么会表述这个问题,所以疯狂的胡乱搜索,终于让我碰上了相似的问题。大致的解答如下:
将图片上传到tomcat服务器下的目录后,当在eclipse中重启tomcat时,项目会被重新部署,图片不属于项目内容,所以图片会被清空。
我们可以自己对比一下eclipse工程下的项目tomcat服务器下的项目,eclipse工程下的项目里面是不包含我们的图片的(因为我们本来就是将图片写入到tomcat服务器下的项目中),而tomcat服务器是通过eclipse来启动的,此时tomcat服务器下的项目是eclipse工程项目的拷贝,此时图片就会被删除。
上面后面一部分的解释是笔者自己瞎扯的,先留个坑,以后真正想清楚了,再回来补上

既然如此,那我就把图片上传到一个不同的地址上,D:\images。这样一来就没有问题了。我图片上传成功了,那我肯定要能使用吧。
我使用img标签来引用图片。

<img src="D:\images">

像上面这样引用绝对地址肯定是不行的(这里不是很清楚的可以google一下)。需要对tomcat配置虚拟路径来使用绝对路径

笔者根据google上80%的关于如何配置虚拟路径 的解答,开心的在tomcat服务器下面server.xml 文件中的<Host>标签中加下了如下的一句:

<Context debug="0" docBase="D:\images" path="/images" reloadable="true"/>

docBase后面是你的绝对地址,path后面是你的虚拟地址
然鹅问题又来了。

tomcat配置虚拟路径后仍然无法引用图片

这个问题依旧和使用eclipse启动tomcat,然后部署项目 有着很大的关系,但笔者一开始还是没有想到这一点,直到后面笔者发现修改后的server.xml文件莫名其妙的被还原了。这让我开始对eclipse起了疑心,但还是无法帮助我解决问题。

最后还是在网上找到了相关资料。

在eclipse中打开一个项目后,在旁边的project explorer 中存在一个servers 的文件夹,其中同样存在着一个server.xml 文件,突然恍然大悟,是不是tomcat下面的server.xml文件被上面那个给还原了,(具体还不是很清楚),于是我给上面那个server.xml文件也添加上了配置虚拟路径那一句话,图片终于成功被引用。

问题虽然被解决了,但整个问题的所在还不是很明了,只是冥冥之中有种感觉.......,算了以后再想吧,先占个坑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值