如题:我们在做一些网站的时候,比如售房网站,可想而知每个房子都有自己的图片,一个房子就好多图片。如果把这些图片都放在当前工程下,那么我们这个工程就好大。实际开发过程中,类似这种网站肯定是要挂载磁盘的,我们在存储图片的时候是真正存在磁盘上的某个目录下,而并非是真正的工程目录下。比如存储在:D:\apps\realestate\images\tenement 如下图:
但是我们在jsp页面中怎么访问这些图片呢?假如图片放在webRoot下, 我们只需写一个相对路径就可以访问了。例如:
<img class="mainImg" src="images/5/image0.jpg“ width="772" height="579" >
但是我们如何访问放在某个盘符下面的图片呢?
以前尝试过用流的方式读取,但是这只适合读取一张图片,当要访问大量图片的时候,这种方式就不合理了。
下面正式介绍我们的方法,更改tomcat 的server.xml来访问指定目录下的图片。
1.首先我们数据库的要存储的是相对路径
2.更改tomcat 的配置文件server.xml 文件
加上这句:<Context docBase="D:/apps/realestate/images" path="/realestate/img" />
doBase写的是你要访问的那个盘符下的哪个目录 path代表你在服务器上访问的路径。比如:http://localhost:8080//realestate/img/tenement\5\image0.jpg 就可以再浏览器真正的看到图片。

3。前台jsp可以直接访问了。
一般我们jsp 中会写:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
图片可以是:
title="${tenement.tenementInfo }">
${photoList[0].bigPhotoPath } 这个地方就是从数据中取出来的相对路径,可能有时候还要单独处理一下。
4.至此我们就可以访问d:盘 或者c:上的某个文件件了;
我们可以访问多个盘,在刚才的基础上要加上<Context docBase="E:/apps/realestate/images" path="/realestate/img" />,但是要保证写的路径真实存在。否则tomcat会报错哦!
注意:实际项目中并非这个样子,大家只是体会一下过程,访问某个磁盘上的图片。