我遇到的情况是我必须提供来自不同文件夹的文件,然后是我的网络应用程序运行的上下文之一。例如,假设我的Web应用程序在“/ opt / tomcat / webapps / ROOT /”上的servlet上下文中运行,我必须提供“/ opt / my_other_folder /”中存在的文件。这些文件夹可以在运行时由客户端更改,因此我不能简单地添加指向这些目录的新上下文。我想要一个解决方案,我不必为此重写Web服务器。此外,我所使用的产品是通用的,因此我无法找到特定于某个servlet容器的解决方案。
谢谢!
答案 0 :(得分:0)
如果您只提供文件,我会考虑使用类似Apache HTTP Server的servlet容器,您只需使用其各种指令来提供指向易于配置的位置的“虚拟目录”。
否则,您可以编写和配置一个基本相同的标准Java servlet - 将实际路径存储在servlet将读取的Java属性文件中。虽然这不是很多的工作,但上述Apache HTTP Server解决方案的工作量要大得多。这与Servlet for serving static content发布的几个答案非常相似。具体来说,您可以使用或扩展Apache Tomcat的DefaultServlet。 (这里有一些特定于Tomcat的类,但它们可以很容易地用通用的等价物替换。)http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html看起来更接近你想要的东西,而且它是完全通用的 - 虽然仍然有一些其他重要特征。
这些选项中的任何一个都非常通用,并不特定于任何特定的servlet容器。