maven项目中jsp页面如何获取本地磁盘的图片并显示
今天研究了很久如何在jsp页面显示本地图片,也百度了很多文章,不断试错之后终于弄出了图片,我百度到的核心文章来源于:https://www.cnblogs.com/blogxiao/p/8034453.html
我今天主要是做了一个类似于自动生成钉钉头像的功能,生成的头像我把它的保存路径设置到了本地磁盘,但是因为没有配置好,导致不是出现GET http://localhost:8080/pic/4T520.jpg的问题,就是出现服务器访问错误的问题。
解决办法
分3步:
- 找到server.xml文件 ,首先找一下你的项目配置的tomcat文件的位置,比如我的是在E:\apache-tomcat-8.5.35\conf路径下面;
- 在文件中找到host标签,在host标签之间加入以下代码;
<Context docBase="D:/pic/" path="/pic" reloadable="true" />
docBase:本地磁盘路径(存放图片的路径)
path:虚拟路径(名字随便设)
一开始我也是这么加的,但是出错了,一直访问不到图片,后来百度到那篇核心文章后就跟着又加了几步,大家可以按照上面的代码改一下,如果不行就加入接下来的步骤:
(1)打开本地文件host.txt,路径是C:\Windows\System32\drivers\etc\host.txt,然后加入
127.0.0.1 www.image.com
www.image.com这个网址是自己设置 ,用这个也没关系。然后用ping再测试一下(开始–附件–命令提示符)
(2)测试成功后将server.xml文件中改成以下这个样子:
<Host appBase="" autoDeploy="true" name="www.image.com" unpackWARs="true">
<Context crossContext="true" path="/pic" docBase="e:\pic\" reloadable="true" >
</Context>
</Host>
整段host代码都需要添加进去,上面有一个host标签,那个是localhost的配置,现在要单独加入www.image.com图片虚拟路径的配置,我之前将图片的访问路径放到localhost的host标签里面结果就错了。
3.jsp页面的写法:
<img src="/pic/4T520.jpg">
/pic是自己再server.xml中设置的虚拟名称,后面只需跟图片名称就可以啦!
如果是加了www.image.com配置的就需要再jsp页面中再加入一行代码:
<c:set var="ctxImg" value="http://www.image.com:8080" scope="request"/>
var=“ctxImg” 是自己设置的引用名称(随便设)
value=“http://www.image.com:8080” 是引用值,就是加载图片会根据这个路径。8080是tomcat端口号,自己运行项目是用的什么端口号就用什么端口号。
然后img标签上也要修改
<img src="${ctxImg}/pic/4T520.jpg" >
这样改完就差不多了。下面是我的效果截图:
如果还有其他问题欢迎大家指出,谢谢!