将pdf文件显示为从servlet嵌入

时间:2016-06-20 15:35:28

标签: java servlets java-ee

我对这个领域很新。如果这很愚蠢,我很抱歉。

我有一个HttpServlet代码如下:

@WebServlet("file")
public class FileResource extends HttpServlet {

    private static final long serialVersionUID = -7698183933607633414L;

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {

        resp.setContentType("application/pdf");
        resp.setHeader("Content-Disposition", "inline");

        File file = new File("/home/nabin/12403.pdf");
        long fileSize = file.length();
        resp.setContentLengthLong(fileSize);

        try {
            InputStream in = new BufferedInputStream(new FileInputStream("/home/nabin/12403.pdf"));
            OutputStream out = new BufferedOutputStream(resp.getOutputStream());

            for (;;) {
                byte[] buffer = new byte[4096];
                int n = in.read(buffer);
                if (n == -1)
                    break;
                out.write(buffer, 0, n);
            }

            out.close();
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我有一个xhtml文件,我想显示该pdf文件。我希望将其显示为嵌入式。

<embed src="../questions/#{FileResource.get}.pdf" width="105%"
                            height="825px" />

现在我可以使用localhost:8080/myapp/file访问pdf文件了 我该怎么办?

2 个答案:

答案 0 :(得分:1)

pdf.js 可用于显示pdf文件 https://github.com/mozilla/pdf.js

答案 1 :(得分:0)

我现在能够在iframe中看到响应。

现在我发送请求查询如下:

<iframe src="/myapp/file?id=#{param.id}"/>

在servlet类中,我使用getParameter("id");方法

检索id