JAVAWEB项目Tomcat虚拟路径配置

在开发项目中,经常有一些文件或者图片上传,访问以及下载;

   这里先说一种最不靠谱,最不建议的解决方案,也就是初学者经常用的,把图片上传到项目目录下,然后访问,下载;

这种方式的弊端是:

第一:开发环境,尤其是eclipse开发,默认上传到的是eclipse的tomcat插件的缓存里的,重启下项目,图片就没了,开发体验很Low; 

第二:实际真实项目,假如项目升级,不小心把文件目录搞没了,造成了文件丢失,这个损失就大了;

所以这种方式一定不要用;

现在说下企业级开发的解决方案;

假如是大型企业级项目,海量文件数据,一般要搞个专门的文件服务器,把文件专门存储到文件服务器,以及提供访问和下载;

当然很多互联网企业已经开始用专业的对象存储服务,比如七牛云存储,阿里云云存储,大大降低了企业运维成本,安全性也高很多;

今天我说的是一种中小型项目用的文件存储方式,直接存硬盘目录;通过虚拟路径配置,来达到映射,这样方便维护,也方便升级;

直接上tomcat配置:

<Context path="/Test/images" docBase="d:\images"/>

就这个配置  path属性是项目访问路径 docBase是映射的硬盘路径;

比如我们在d盘的images目录下搞个图片 java.jpg

然后运行项目,访问http://localhost:8080/Test/images/java.jpg  这样就可以请求到图片了

1.jpg

当然上传的话也简单 直接 搞到硬盘路径即可,一般文件名要重命名,防止文件名重名覆盖;

eclispe里配置的话 直接 Servers的用到的服务器配置server.xml

2.jpg

idea的话 直接本地tomcat conf server.xml配置,是有点区别的;

这里再扩展下,假如是springboot项目,内嵌的tomcat,如何配置呢?

我们搞个配置类即可,我们给下参考代码;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

package com.java.config;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**

 * 图片绝对地址与虚拟地址映射

 */

  

@Configuration

public class WebMvcConfig extends WebMvcConfigurerAdapter {

  

  @Override

  public void addResourceHandlers(ResourceHandlerRegistry registry) {

  

    //文件磁盘图片url 映射

    //配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径

    registry.addResourceHandler("/image/**").addResourceLocations("file:D:\\articleImages\\");

    registry.addResourceHandler("/userImage/**").addResourceLocations("file:D:\\userImages\\");

  }

  

}

还有假如是linux服务器,注意斜杠,这里给下参考配置;

<Context docBase="/home/userImages"  reloadable="true"  debug="0" path="/userImage"/>

<Context docBase="/home/articleImages"  reloadable="true"  debug="0" path="/image"/>

猜你喜欢

转载自blog.csdn.net/weixin_41934292/article/details/89000594