2012-08-29 103 views
0

浏览器打开文件我有一个servlet和JSP独立简单的Java Web应用程序,说这个名字是FileDisplay我通过URL访问其主页 - http://localhost:8080/FileDisplay/index.jsp在使用Java Web应用程序

应用本质上确实是什么,获取文件名(.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="">那么它不工作。在viewsource它看起来像 -

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

我认为这是东阳这些文件不是web应用程序的一部分,所以容器犯规认为这是本地,因此无法打开。当我将鼠标指针放在链接上时,状态栏显示为file:///D:\ABCD\pdf1.pdf。我也尝试在href前加file:///,即使那样也行不通。所以我尝试了其他一些事情。
有一两件事我想是设置在Tomcat的server.xml但即使这似乎并没有工作Context。我使用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"/> 

我在做什么错在这里?

是否现在更多解释一下?

回答

2

我认为你是错误的方式。

如果你想提供访问分布式文件系统中的不同的文件创建控制器(小服务程序)接受URL,读取相应的文件,并将其写入到响应输出流。

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

+0

谢谢。我在脑海中想要使用流,但我并不真的想用流过多。但是,如果没有其他选项,那么可能会使用流。 –