2012-10-09 33 views
2

在我的servlet中,在完成一些操作之後,我生成了一個PDF。它在ByteArray中。在servlet的特定jsp頁面中顯示pdf

我能這樣做,顯示在瀏覽器,PDF,

  1. byte[]InputStream
  2. 寫它ByteArrayOutputStream
  3. 然後寫ByteArrayOutputStreamServletOutputStream
  4. 然後返回null;

這將在當前窗口中顯示PDF,但可以在任何特定的JSP頁面中顯示PDF嗎? 因爲我想在顯示PDF的同時在JSP的頁腳中放置一些按鈕。以上述方式,整個窗口僅包含PDF。

+1

如果您的內容類型是「application/pdf」,那麼使用特定的JSP有什麼用處? –

+2

爲什麼不直接寫'byte []'到'ServletOutputStream'呢? 'response.getOutputStream()。寫(字節)'。 – BalusC

+0

@HardikMishra我想在我的JSP的特定部分顯示PDF。然後用戶可以下載它,如果他們想要的。我不想只提供下載。 –

回答

1

您可以在您的JSP頁面中嵌入一個IFRAME,並將其尺寸設置爲佔用整個頁面,除了要顯示頁腳的部分以外,頁腳將成爲JSP的一部分。 IFRAME target/src將是顯示PDF的servlet。

目前,您似乎正在使用一些請求參數從頁面A調用Servlet B.您應該使用相同的請求參數從Page A調用新的JSP,並且JSP頁面將爲IFRAME構建目標URL並調用將處理並返回PDF頁面的servlet B.

+0

好吧,但我很困惑,我該如何決定將我的請求轉發給這個特定的JSP。在這裏,我可以返回null。 –

+0

明白了。請參閱更新。 – Vikdor

+0

偉大的解決方案@Vikdor,它完美的工作,因爲我想要的。但是我設計了這樣的流程 - 我的jsp將在調用時調用servlet。然後我在會話中設置字節[]。現在Servlet會將請求轉發給另一個jsp。那個jsp將會有iFrame,所以它會顯示pdf。 - 通過檢查attrib null或不。 –