作者:mobiledu2502931957 | 来源:互联网 | 2023-05-18 00:20
如题:我们在做一些网站的时候,比如售房网站,可想而知每个房子都有自己的图片,一个房子就好多图片。如果把这些图片都放在当前工程下,那么我们这个工程就好大。实际开发过程中,类似这种网站肯定是
如题:我们在做一些网站的时候,比如售房网站,可想而知每个房子都有自己的图片,一个房子就好多图片。如果把这些图片都放在当前工程下,那么我们这个工程就好大。实际开发过程中,类似这种网站肯定是要挂载磁盘的,我们在存储图片的时候是真正存在磁盘上的某个目录下,而并非是真正的工程目录下。比如存储在:D:\apps\realestate\images\tenement 如下图:
但是我们在jsp页面中怎么访问这些图片呢?假如图片放在webRoot下, 我们只需写一个相对路径就可以访问了。例如:
2.更改tomcat 的配置文件server.xml 文件
加上这句:
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+"/";
%>
图片可以是:
${photoList[0].bigPhotoPath }" data-index="0" alt="${tenement.tenementInfo }"
title="${tenement.tenementInfo }">
${photoList[0].bigPhotoPath } 这个地方就是从数据中取出来的相对路径,可能有时候还要单独处理一下。
4.至此我们就可以访问d:盘 或者c:上的某个文件件了;
我们可以访问多个盘,在刚才的基础上要加上,但是要保证写的路径真实存在。否则tomcat会报错哦!
注意:实际项目中并非这个样子,大家只是体会一下过程,访问某个磁盘上的图片。
真实的配置,这里我也不太懂。不过各自调试程序时,假设其在本工程的一个子目录下就OK了;真部署时,会通过junction的软链接,将该子目录挂接映射到一个单独的真实磁盘(阵列)上。
1. 我们的最终架构是:
Apache Web Server-------->(1个或多个负载均衡的)Tomcat J2EE Server ----->JSP/SSH(Struts/Spring/Hibernate)等动态数据为主
|-------->/images/tenement等静态图片
(1) Apache和Tomcat上都可以配置虚拟主机, Apache负责监听标准的80端口,并映射对应多个域名;
(2) 动态页面的访问,Apache通过AJP协议转发给Tomcat;
(3) 静态的图片,Apache配置成优先访问本地磁盘文件,因为Apache的静态数据效率全行业排名第一;