Tomcat配置虚拟路径,使上传文件与服务器分离

简介: Tomcat配置虚拟路径,使上传文件与服务器分离

【1】eclipse下配置Tomcat虚拟路径映射

遇到问题介绍:项目中上传文件到服务器。如果使用tomcat下的目录作为上传图片的路径,则每次重启服务器图片将消失。

因为开发工具的项目中没有该图片,每次重启服务器重新部署的时候将会删除开发工具的项目中不存在的文件

解决:可以使用tomcat的配置文件将某个请求 映射到 物理路径下 ,完成图片的回显—在Tomcat的server.xml设置虚拟路径!


如,请求http://localhost:8080/upload/resources/1.jpg,让其自动去本机D盘D:\upload\resources路径下寻找


操作步骤:


找到Tomcat/conf/server.xml文件

  <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
      <Context docBase="MavenWebProject" path="/MavenWebProject" reloadable="true" source="org.eclipse.jst.jee.server:MavenWebProject"/>
    <Context docBase="JavaSE-JS" path="/JavaSE-JS" reloadable="true" source="org.eclipse.jst.jee.server:JavaSE-JS"/>
    <!-- 这里添加以下语句-->
    <!--  To Solve upload file -->
    <Context path="/upload/resources/" docBase="D:\upload\resources\"></Context>
    </Host>

重启Tomcat,这样当请求http://localhost:8080/upload/resources/1.jpg,

服务器会自动去本机D盘D:\upload\resources路径下寻找图片1.jpg。


上面示例没有添加contextPath,如果访问URL存在contextPath呢?如下所示:

# url
http://localhost:8080/furniture/upload/1.jpg
# 虚拟路径设置
 <Context docBase="D:\my\upload\" path="/furniture/upload" reloadable="true"/>

这里处理的是动态上传图片并且进行图片回显。

如果是Eclipse下项目中的静态资源文件,部署的时候会同时部署到Tomcat/webapps(Eclipse默认的项目发布目录不是为Eclipse自身下的一个文件夹,请手动修改)下。

可以直接请求,不用进行目录映射。

题外话

如果Tomcat重启后,发现修改的server.xml自动还原了。

两种解决思路:

① 修改Eclipse工具下的Servers里面的server.xml , 使其保证与你想要修改成的目标一致。

因为自动发布的时候,会默认加载这里面的context.xml 和 server.xml !

② 取消自动发布 !

【2】IDEA下配置虚拟路径映射

如果你使用的是idea运行项目,那么按照上面方式修改server.xml不生效。可以在idea中配置,如下图:


【3】上传到项目路径下

虚拟路径映射有一定难度,而且项目拷贝还需要拷贝制定文件夹。所以也可以考虑上传到项目路径下。

代码示例:

  /**
   * 根据字符串创建本地目录 并按照日期建立子目录返回
   * @param path
   * @return
   */
  private String getFolder(String path) {
    SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
    path += "/" + formater.format(new Date());
    File dir = new File(this.getPhysicalPath(path));
    if (!dir.exists()) {
      try {
        dir.mkdirs();
      } catch (Exception e) {
        this.state = this.errorInfo.get("DIR");
        return "";
      }
    }
    return path;
  }
/**
   * 根据传入的虚拟路径获取物理路径
   *
   * @param path
   * @return
   */
  private String getPhysicalPath(String path) {
    String servletPath = this.request.getServletPath();
    String realPath = this.request.getSession().getServletContext()
        .getRealPath(servletPath);
    return new File(realPath).getParent() +"/" +path;
  }



目录
相关文章
|
18天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
28 1
|
6天前
|
IDE JavaScript Java
如何配置tomcat
【4月更文挑战第15天】如何配置tomcat
14 2
|
8天前
|
弹性计算 安全 Java
阿里云服务器配置、(xshell)远程连接、搭建环境、设置安全组、域名备案、申请ssl证书
以下是内容的摘要: 在阿里云购买服务器并进行基本配置的步骤如下: 1. **准备工作**: - 注册阿里云账号:访问阿里云官网并注册新账号,输入用户名、手机号和验证码。 - 实名认证:在个人中心进行实名认证,建议选择企业实名,因为个人实名可能无法索取企业发票。
|
12天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
12天前
|
弹性计算 缓存 运维
2024阿里云服务器4核8G配置最新租用收费标准与活动价格参考
4核8G配置是大部分企业级用户购买阿里云服务器的首选配置,2024年经过调价之后,4核8G配置的阿里云服务器按量收费标准最低为0.45元/小时,按月租用平均优惠月价最低收费标准为216.0元/1个月,按年购买最低活动价格为1322.78元/1年,云服务器实例规格和配置不同,收费标准与活动价格也不同,下面是小编为大家整理汇总的阿里云服务器4核8G配置2024年最新收费标准与活动价格。
2024阿里云服务器4核8G配置最新租用收费标准与活动价格参考
|
14天前
|
运维 Java 应用服务中间件
Tomcat详解(七)——Tomcat使用https配置实战
Tomcat详解(七)——Tomcat使用https配置实战
30 4
|
15天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
18天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
18天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
21天前
|
NoSQL Redis 数据安全/隐私保护
国产麒麟服务器等保二级 配置规范(二)
国产麒麟服务器等保二级 配置规范(二)
24 0