gpt4 book ai didi

java - 使用 Java Web App 在浏览器中打开文件

转载 作者:行者123 更新时间:2023-12-02 07:36:21 24 4
gpt4 key购买 nike

我有一个带有 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

如果我使用简单的<a href="">在jsp中则不起作用。在 View 源中它看起来像 -

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

我认为这是因为这些文件不是网络应用程序的一部分,所以容器不认为它是本地的,因此无法打开它们。当我将鼠标指针放在链接上时,状态栏显示为 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"/>  

我在这里做错了什么?

现在解释得更清楚了吗?

最佳答案

我认为你走错路了。

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

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

关于java - 使用 Java Web App 在浏览器中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com