Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用window.open()打开PDF文件_Java_Jsp_Tomcat_Struts2_Liferay - Fatal编程技术网

Java 使用window.open()打开PDF文件

Java 使用window.open()打开PDF文件,java,jsp,tomcat,struts2,liferay,Java,Jsp,Tomcat,Struts2,Liferay,我有一个生成PDF文件并将其存储在/temp文件夹中的方法。我正在使用tomcat。我想打开PDF文件。我已经使用JavaScript中的window.open()方法尝试了这一点。但单击超链接时,它表示未找到请求的资源 我使用以下行将PDF文件存储在/temp文件夹中(当然文件会生成并保存在该位置): 现在,在JSP中,我尝试以下操作: 但它显示了以下错误: The requested resource was not found. http://localhost:8080/temp

我有一个生成PDF文件并将其存储在
/temp
文件夹中的方法。我正在使用tomcat。我想打开PDF文件。我已经使用JavaScript中的
window.open()
方法尝试了这一点。但单击超链接时,它表示未找到请求的资源

我使用以下行将PDF文件存储在
/temp
文件夹中(当然文件会生成并保存在该位置):

现在,在JSP中,我尝试以下操作:


但它显示了以下错误:

The requested resource was not found. 

http://localhost:8080/temp/report.pdf
编辑:

尝试了以下操作:

在JSP页面中,打开文件的下载链接:


struts.xml中的


/WEB-INF/view/pdfDownload.jsp
包含下载PDF文件的JavaScript的JSP页面:


= 0) 
{
位=inputStream.read();
servletOutputStream.write(位);
}
//System.out.println(“+”位);
}
捕获(异常ioe)
{
//ioe.printStackTrace(系统输出);
}
System.out.println(“\n”+i+“已发送字节”);
System.out.println(“\n”+f.length()+“已发送字节”);
servletOutputStream.flush();
//out.close();
inputStream.close();
}
捕获(例外e)
{
}
%>

现在,当我单击下载链接时,什么也没有发生,它重定向到JSP页面,但是下载的弹出窗口没有出现。

想想你在做什么。你真的认为打字
http://www.google.com/tmp/secretReport.pdf
在浏览器地址栏中,您可以访问google服务器文件系统上
/tmp
目录中的一些秘密报告


您不能像这样通过HTTP访问服务器的文件系统。您需要的是一个由浏览器调用的servlet,它读取PDF文件并在HTTP响应中发送它。

想想您在做什么。你真的认为打字
http://www.google.com/tmp/secretReport.pdf
在浏览器地址栏中,您可以访问google服务器文件系统上
/tmp
目录中的一些秘密报告

您不能像这样通过HTTP访问服务器的文件系统。您需要的是一个由浏览器调用的servlet,它读取PDF文件并在HTTP响应中发送它。

您有什么问题:

  • 该文件是在服务器上创建的,因此无法在客户端上打开 使用JavaScript
  • 首先需要下载该文件,您需要提供映射到该操作的url,可能带有要下载的文件的参数。如果您在另一个操作中创建了一个文件,您可以在JSP中显示要下载的文件名。只需将action属性用作文件名
  • 不鼓励使用Scriptlet中的Java代码,请使用此代码实现用于返回
    流的操作
  • 为了你的幸福,有一个秘密。您所需要的只是将其应用到您的场景中

    你做错了什么:

  • 该文件是在服务器上创建的,因此无法在客户端上打开 使用JavaScript
  • 首先需要下载该文件,您需要提供映射到该操作的url,可能带有要下载的文件的参数。如果您在另一个操作中创建了一个文件,您可以在JSP中显示要下载的文件名。只需将action属性用作文件名
  • 不鼓励使用Scriptlet中的Java代码,请使用此代码实现用于返回
    流的操作

  • 为了你的幸福,有一个秘密。您所需要的只是将其应用到您的场景中

    我看到其他人已经回答了你的结果,但我看到你很难理解他们的答案。那么,我有更简单的开始

    只需在您的网页(站点根目录)目录中创建一个名为
    /temp
    的文件夹,然后放入PDF(
    report.PDF
    )即可使用该链接

    现在,您只需使用简单的文件IO将报告放入该文件中即可

    例如,如果您编写代码在
    temp
    目录(已在web根目录中提供)中编写名为
    xyz.PDF
    的PDF文件,则访问url将为
    /temp/xyz.PDF


    这里有一个小提示。

    我看到其他人已经回答了你的结果,但我看到你在理解他们的答案方面有困难。那么,我有更简单的开始

    只需在您的网页(站点根目录)目录中创建一个名为
    /temp
    的文件夹,然后放入PDF(
    report.PDF
    )即可使用该链接

    现在,您只需使用简单的文件IO将报告放入该文件中即可

    例如,如果您编写代码在
    temp
    目录(已在web根目录中提供)中编写名为
    xyz.PDF
    的PDF文件,则访问url将为
    /temp/xyz.PDF


    这里有一个小提示。

    请在句子开头加一个大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使人们更容易理解和帮助。请在句子开头加一个大写字母。也可以用大写字母表示I,缩写和首字母缩略词如JEE或WAR。这使人们更容易理解和帮助。你能给我举个例子吗。我在谷歌上搜索了很多,但没有找到任何有效的示例。请参见示例。不要使用JSP将文件发送到输出流。直接使用Struts操作。thnks。你能给我举个例子吗。我在谷歌上搜索了很多,但没有找到任何有效的例子
    The requested resource was not found. 
    
    http://localhost:8080/temp/report.pdf