行业资讯 2025年08月6日
0 收藏 0 点赞 247 浏览 1120 个字
摘要 :

文章目录 案例说明 解决方法:配置tomcat的虚拟目录 在我们开发Java Web项目时,经常需要上传图片然后通过img标签显示图片,如果上传的图片直接上传到tomcat服务器的服……




在我们开发Java Web项目时,经常需要上传图片然后通过img标签显示图片,如果上传的图片直接上传到tomcat服务器的服务器地址中,使用相对路径可以直接访问,但是这样也会导致服务器重启,图片项目重新部署导致图片丢失,因此,我们经常会把图片上传到本地硬盘上的某一个目录,而不会放在tomcat服务器中存储,这样灵活性也更好,也方便管理,tomcat重启也不会对原图片产生影响,但是也带来了一个问题,就是我们无法直接通过img标签引用图片的绝对或相对路径来展示图片,那该怎么解决呢?下面Java潘老师给大家介绍一种比较常用的方法来实现。

案例说明

比如潘老师在本地硬盘的C:\\pics目录下存放图片,里面放了一张名为1.jpeg的图片,在java web项目中想显示这张图片,我们使用如下方式是无法实现的:

<img alt="" src="C:\\pics.jpeg" />

解决方法:配置tomcat的虚拟目录

1)我们的方法实现其实非常简单,就是配置tomcat的虚拟目录,我们打开tomcat服务器的conf配置目录下的server.xml配置文件,找到Host标签配置,然后添加如下配置:

<Context path="/pics" docBase="C:\\pics" crossContext="true" reloadable="false" debug="0"/>  

其中path是虚拟目录,docBase是真实物理路径。写的时候注意正斜杠与反斜杠别写错了。具体如图:
Java Web项目中tomcat服务器访问本地硬盘上图片的方法

PS:另外,这一行Context的配置支持多个,可以支持指定映射多个目录!

2)然后我们重启tomcat服务器,使用如下虚拟目录就可以访问到真实路径下的图片了:

<img alt="" src="/pics/1.jpeg" />

是不是很简单,一个配置就将java web中的虚拟路径和本地硬盘的真实路径建立了映射关系,访问虚拟路径就相当于访问了真实的物理路径。

注意:如果你是使用Eclispe重启tomcat服务器,潘老师发现会有一个问题就是,只要tomcat关闭后再启动给配置就被莫名其妙的还原了配置,这时我们需要在Eclipse的Servers项目中,找到你的Tomcat中server.xml配置,然后把我们刚才新增的配置加进去,这样每次eclipse重启tomcat重新发布想你时就不会再被还原了。

其实还有一种方法就是imgsrc指向一个controller中的请求方法,该方法通过IO流进行读取本地硬盘物理路径里的图片然后返回给img标签,虽然能实现,但是如果比较频繁的访问图片就会导致频繁地使用流去读取,效率不是很好,大家了解下就好。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/8138.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

986
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

463
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

347
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

455
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

516
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

831
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号