gpt4 book ai didi

java - 从java访问tomcat别名目录

转载 作者:行者123 更新时间:2023-11-28 22:50:39 24 4
gpt4 key购买 nike

在 Tomcat7 中,有一个选项可以像这样从上下文中使用别名:

 <Context aliases="/up=/var/tomcat/upload"></Context>

有了这个,我可以从 webapp 外部访问文件。现在,我想从我的 Java 代码中写入和读取此目录,但不知道如何操作。

我能做到:

servletContext.getResourcePaths("/up/")

它显示了/var/tomcat/upload 的内容。

我如何写入这个目录?

我对异常(exception)答案做了什么:将此添加到 context.xml:

<Context aliases="/up=/var/tomcat/upload">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=".*" />
<Parameter name="uploadDir" value="/var/tomcat/upload"/>

这在我的 java 代码中:

String uploadDir = servletContext.getInitParameter("uploadDir") + subDir;
OutputStream bos = new FileOutputStream(uploadDir + fileName);

这可行,但我只能使用参数并跳过别名,因为对于 java 它没有帮助。所以我不太确定别名背后的想法是什么。我认为这是用于上传文件,因为在重新部署此目录后,内容不会被覆盖。但是,如果 java 只能使用额外的参数访问它,那么它只能用于提供可能位于 webapp 内部( war 内部)的静态内容。

最佳答案

您单独告诉您的 Java 代码您的上传文件夹的路径 (/var/tomcat/upload),以便它可以在那里读/写文件。

例子:

<Context aliases="/up=/var/tomcat/upload">
<Parameter name="uploadDir" value="/var/tomcat/upload"/>
</Context>

您的 java 代码可以通过调用 ServletContext.getInitParameter("uploadDir") 获取参数值。

关于java - 从java访问tomcat别名目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com