【问题标题】:How to display dynamically generated pdf files in the browser, tomcat server, java webapp如何在浏览器、tomcat服务器、java webapp中显示动态生成的pdf文件
【发布时间】:2026-01-21 17:20:12
【问题描述】:

我正在使用 Eclipse 在 Java 中创建一个动态 Web 应用程序。我的网络应用程序基本上是通过从 IOS 应用程序获取信息来创建 PDF 文件。

创建 PDF 后,我想在 IOS 应用程序中显示它。我将生成的PDF文件动态保存到Eclipse项目的WebContent目录中。

为了在localhost 中测试我可以在我的IOS 应用程序中显示PDF 文件,该应用程序需要知道PDF 文件的URL。

但是,Tomcat 服务器无法在浏览器中显示 PDF 文件。那么如何先在浏览器中显示生成的PDF文件呢?我是否需要做一个 servlet 映射,因为 PDF 文件是动态生成的。

Here is my directory to store pdf

Another Problem

【问题讨论】:

    标签: java pdf browser


    【解决方案1】:

    除非得到指示,否则 Tomcat 服务器不会自动显示静态资源(*.jpg、*.png、*.pdf 等)。为了让 Tomcat 检索这些资源,请将以下内容添加到您的 web.xml

    <servlet-mapping>   
        <servlet-name>default</servlet-name>
        <url-pattern>*.pdf</url-pattern>
    </servlet-mapping>
    

    请注意,您使用的是default servlet,而不是处理动态内容的自定义 servlet。

    此示例假定您将 PDF 存储到文件系统(在您的网络应用程序可访问的文件夹中)。只要您将 URL 返回到生成的文件,就因为它们是动态(动态)创建的。

    更新: 您的 servlet 应返回 PDF 文件的 URL,例如

    http://localhost:8080/data/img/012725.pdf

    现在,当您单击该链接(在浏览器或 iOS 应用中)时,PDF 将下载到您的客户端。

    【讨论】:

    • 您好,抱歉,我实际上没有得到您的答复。如何使用默认 servlet 在浏览器中访问 pdf。我编辑了我的问题以显示我的 pdf 目录。 “返回生成文件的 URL”是什么意思?感谢您的回复。
    • 默认的 servlet 就是 Tomcat 的默认 servlet,这不是你应该担心的,只需将它包含在你的 web.xml 中
    • 我想知道,如果我将它部署在实际服务器上,它会以同样的方式工作吗?像数字海洋水滴?
    • 当然,应该没有区别。
    • 嗨,先生,我遇到了另一个问题。我用下面的截图编辑了我的问题。问题是当我动态生成 pdf 时,eclipse ide 不能反映实时变化。在 finder 中,我可以看到新生成的 pdf,但是在 eclipse 中我看不到该 pdf(屏幕截图)。结果,我无法在浏览器上显示它。但是,如果我在 Eclipse 中刷新项目文件夹,那么它只会显示 pdf。非常感谢您的帮助!