Eclipse conf/server.xml中的更改在运行时似乎没有任何影响

Eclipse conf/server.xml中的更改在运行时似乎没有任何影响,eclipse,tomcat,spring-tool-suite,Eclipse,Tomcat,Spring Tool Suite,以下是我所知道的: 当上传用户提供的文件时,我们应该把它们放在一个文件夹中 在部署文件夹之外。让我称之为D:\上传 我们应该(以某种方式)将该文件夹(D:\uploads)添加为web应用程序上下文 以下是我所做的: 我将文件上载到文件夹D:\uploads 我试图通过将以下行添加到TOMCAT_DIR/conf/server.xml来添加前面提到的web应用上下文: 但这没有任何效果。当咨询或我得到一个HTTP状态404错误 所以我想知道的是: 我做错了什么?如何将上载文件夹添加到

以下是我所知道的:

  • 当上传用户提供的文件时,我们应该把它们放在一个文件夹中 在部署文件夹之外。让我称之为D:\上传
  • 我们应该(以某种方式)将该文件夹(D:\uploads)添加为web应用程序上下文
以下是我所做的:

  • 我将文件上载到文件夹D:\uploads
  • 我试图通过将以下行添加到TOMCAT_DIR/conf/server.xml来添加前面提到的web应用上下文:

但这没有任何效果。当咨询或我得到一个HTTP状态404错误

所以我想知道的是:

  • 我做错了什么?如何将上载文件夹添加到Tomcat
  • 在上传文件时,有没有更好的方法? 因为我想知道如果我想部署我的 应用程序到另一个没有D:\上传的服务器

  • 更改
    docBase
    属性。使用
    D:/uploads
    (带斜杠)代替
    D:\uploads
    (带反斜杠)

    在Java中处理文件时,您可以在所有平台上安全地使用
    /
    (斜杠,而不是反斜杠)


    关于您在评论中提到的从IDE启动Tomcat和从
    bin/startup.bat
    启动Tomcat的区别:很可能从IDE启动Tomcat时,它使用的不是Tomcat使用的相同的
    context.xml
    。只需查看IDE中的Tomcat设置


    如何存储上传的文件是堆栈溢出时的一个常见主题。环顾四周,你会惊讶于这个话题的流行程度


    如果您不满意将文件存储在<代码>:/上载< /COD>或将有其他服务器访问文件,则可以考虑将它们存储在网络中的某个位置。根据您的要求,您可以使用一台专用服务器来存储文件,也可以共享当前服务器中包含文件的文件夹。正确的决定将始终取决于您的需求。

    谢谢您的回答,这就成功了。但我只是注意到,当从IDE启动服务器时(我使用的是Spring工具套件),我无法访问该文件夹(或webapps中的任何文件夹)。但是如果我手动启动服务器(通过执行bin/startup.bat),我可以自由访问/uploads路径和webapps中的任何文件夹。这是正常的行为还是我遗漏了什么?我明白了,我会寻找更多的细节。谢谢你的回答,真的很有帮助。如果你能证实我的疑问,我会很高兴,因为我在问题的第二点(关于更好的方法)中表达了这些疑问。@Auranx我刚刚更新了我的答案。希望它能帮助你。我真的很感激。提供的答案非常有帮助,切中要害。