2012-08-29 105 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

謝謝。我在腦海中想要使用流,但我並不真的想用流過多。但是,如果沒有其他選項,那麼可能會使用流。 –