如何在JSP中打开PDF文件?

如何在JSP中打开PDF文件?,jsp,servlets,pdf,runtime,Jsp,Servlets,Pdf,Runtime,我有一个应用程序,我想在其中打开一个在运行时打开并创建的JSP文件。我的问题是,如果没有固定的路径,如何打开它。如何知道它在哪里以及如何在运行时打开它?您可以使用servlet @WebServlet("/Test.pdf") public class PdfServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Ser

我有一个应用程序,我想在其中打开一个在运行时打开并创建的JSP文件。我的问题是,如果没有固定的路径,如何打开它。如何知道它在哪里以及如何在运行时打开它?

您可以使用servlet

@WebServlet("/Test.pdf")
public class PdfServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
File file = new File("D:\\Test\\Test.pdf");
response.setHeader("Content-Type",    getServletContext().getMimeType(file.getName()));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"Test.pdf\"");
     Files.copy(file.toPath(), response.getOutputStream());
}
}
(如果Servlet 3.0不可用,则以通常的方式将其映射到web.xml中;如果Java 7不可用,则以通常的方式使用读/写循环)

只需将该类全部复制粘贴到项目中,并通过/contextpath/Test.PDF而不是/contextpath/youroriginal.jsp打开所需的PDF文件(当然,在将其组织到包中并在类中自动完成必要的导入之后)

例如,在JSP中,您希望以内联方式显示PDF,如下所示:

<object data="${pageContext.request.contextPath}/Test.pdf" 
type="application/pdf" width="500" height="300">
<a href="${pageContext.request.contextPath}/Test.pdf">Download file.pdf</a>

要解决问题,请将链接行重新编写为

<A HREF="<%="file://D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A>


但是,如果确实希望在服务器本身以外的其他系统上访问文件,则应将文件移动到web目录中,然后使用相对路径进行访问

是否将其保存在项目路径中?如“web内容”下。是。所有pdf文件都将具有类似“DS”+id+“No”的名称模式。