如何从JSP打开pdf文档

Dil*_*llo 2 java browser pdf jsp

如何从JSP打开PDF文档?我有很多PDF文件的链接.在Eclipse中,当我单击链接时,PDF将在PDF阅读器中打开.但是在像Firefox和Chrome这样的网络浏览器中,没有任何反应.

我按F:\....\...pdf以下方式生成PDF文件的链接:

<%
    while (iter.hasNext()) {
        element = iter.next(); 
        bookName = getBookName(element);

%>
        <ul>
            <li><a href="<%=element %>"><%=bookName %></a>
        </ul>
<% 
    }
%>
Run Code Online (Sandbox Code Playgroud)

这个问题是怎么造成的,怎么解决?

Bal*_*usC 7

链接必须指向URL,而不是指向本地磁盘文件系统路径或其他内容.由于安全限制,平均webbrowser不会吞下这个.即便如此,当它与Web服务器在物理上不同的机器上运行时,它也无法在生产环境中工作,因此根本无法访问F:磁盘.

所以,你应该使用

<a href="F:\....\...pdf">link</a>
Run Code Online (Sandbox Code Playgroud)

但你应该使用

<a href="http://example.com/filename.pdf">link</a>
Run Code Online (Sandbox Code Playgroud)

或者当它在例如当前JSP文件的同一文件夹中时

<a href="filename.pdf">link</a>
Run Code Online (Sandbox Code Playgroud)

如果您不能将PDF文件放在自己的Web项目中,那么您需要寻找不同的解决方案.

  • 将外部文件夹添加为servletcontainer的另一个上下文.
  • 将外部文件夹移动到servletcontainer的deploy文件夹中.
  • 创建一个servlet,从磁盘读取它并将其写入响应.

您可以在以下问题的答案中详细找到上述解决方案: