0

我遇到了一种情况,我必须从不同的文件夹中提供文件,然后是我的 Web 应用程序运行的上下文之一。例如,假设我的 Web 应用程序在“/opt/tomcat/webapps/ROOT/”上的 servlet 上下文中运行,并且我必须提供“/opt/my_other_folder/”中存在的文件。这些文件夹可以由客户端在运行时更改,因此我不能简单地添加指向这些目录的新上下文。我想要一个解决方案,我不必为此重写 Web 服务器。另外,我工作的产品是通用的,所以我不能有特定于某些 servlet 容器的解决方案。

谢谢!

4

1 回答 1

0

如果您只提供文件,我会考虑在您的 servlet 容器前面使用 Apache HTTP Server 之类的东西,您可以在其中简单地使用其各种指令来提供指向易于配置的位置的“虚拟目录”。

否则,您可以编写和配置一个标准的 Java servlet,它基本上会做同样的事情——将实际路径存储在 servlet 可以读取的 Java 属性文件中。但是,虽然这不是很多工作,但与上述 Apache HTTP Server 解决方案相比,工作量要大得多。这与在Servlet 上发布的用于提供静态内容的几个答案非常相似。具体来说,您可以使用或扩展 Apache Tomcat 的DefaultServlet。(这里使用了一些特定于 Tomcat 的类,但它们可以很容易地用通用等效类替换。) http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html看起来更接近您正在寻找的东西,而且它是完全通用的 - 同时仍然具有一些额外的重要功能。

这些选项中的任何一个都是非常通用的,并且不特定于任何特定的 servlet 容器。

于 2011-12-28T18:37:02.080 回答