java1234开源博客系统
博客信息

javaweb项目Tomcat虚拟路径配置

0
发布时间:『 2019-01-09 18:56』  博客类别:Tomcat  阅读(140)

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,如何配置呢?

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

package com.java1234.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"/>



java1234_小锋原创,欢迎转载,记得注明java1234出处;

关键字:   tomcat     虚拟路径配置  
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有