0

我有一个带有 servlet 和 jsp 的独立简单 java web 应用程序,比如说名称是 FileDisplay 我通过 url - 访问它的主页http://localhost:8080/FileDisplay/index.jsp

应用程序本质上是检索具有完整路径的文件名列表(.xml 和 .pdf)。这些文件存储在各种外部目录中,例如 D:\ABCD、D:\XYZ、D:\PP\2012\08 等,但与 Web 应用程序位于同一台机器上,只是在不同的驱动器上。所以返回列表是这样的——

D:\ABCD\filename1.xml  
D:\ABCD\filename2.xml  
D:\ABCD\pdf1.pdf 

如果我在 jsp 中使用简单<a href="">的,那么它不起作用。在视图源中它看起来像 -

<a href="D:\ABCD\pdf1.pdf">file1</a>

我认为这是因为这些文件不是 webapp 的一部分,所以容器不认为它是本地的,因此无法打开它们。当我将鼠标指针放在链接上时,状态栏显示为file:///D:\ABCD\pdf1.pdf. file:///我也尝试在中添加前缀href,即使那样它也不起作用。所以我尝试了其他一些事情。
我尝试过的一件事是Context在 Tomcat中设置,server.xml但即使这样似乎也不起作用。我正在使用 eclipse 来构建、部署和运行 tomcat,所以server.xml我为此上下文修改的是 eclipse 工作区中的一个。
我使用的设置是 -

<Context docBase="D:/ABCD" path="/File-Display/NB" reloadable="true"/>  

我为主应用程序设置了另一个上下文,即 -

<Context docBase="FileDisplay" path="/FileDisplay" reloadable="true" source="org.eclipse.jst.j2ee.server:FileDisplay"/>  

我在这里做错了什么?

它现在解释得更多了吗?

4

1 回答 1

2

我认为你走错路了。

如果您想提供对分布在文件系统中的不同文件的访问,请创建接受 URL、读取适当文件并将其写入响应输出流的控制器 (servlet)。

通过这种方式,您可以控制对资源的访问,使它们安全等。您将能够轻松地修改您的应用程序(例如,如果您更改文件位置)。等等等等。

于 2012-08-29T15:20:07.210 回答