2016-08-03 220 views
0

我想在客戶端瀏覽器的新選項卡中顯示PDF文件。Java在新的瀏覽器窗口中打開pdf文件

我創建了一個servlet類來顯示pdf文件,我是Java新手,我不知道如何使用我創建的類,以及類是否正確。

我使用Tomcat在Windows上使用Java。

servlet代碼:

public class DisplayPdf extends HttpServlet implements Servlet { 

private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, 
     IOException { 
    processRequest(request, response); 
} 

private void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, 
     IOException { 
     File file = new File("test.pdf"); 
     InputStream inputStream = getServletContext().getResourceAsStream("/WEB-INF/resources/test.pdf"); 
     OutputStream outputStream = new FileOutputStream(file); 
     byte[] buffer = new byte[1024]; 
     int length; 
     while ((length = inputStream.read(buffer)) > 0) { 
      outputStream.write(buffer, 0, length); 
     } 
     outputStream.close(); 
     inputStream.close(); 
} 

}

我如何可以調用這個servlet和來自Java的webapp使用它呢?

回答

0

這實際上並沒有(或只是很少)與servlet或任何其他服務器端技術打開,打開新窗口/選項卡或保存對話框完全在瀏覽器的權限。你所能做的服務器端就是爲你的響應設置適當的HTTP標題,例如

response.setContentType("application/pdf"); 
response.setHeader("Content-Disposition", "inline; filename=\"My.pdf\""); 

Content-Disposition頭的inline部分告訴瀏覽器,它可以顯示文件內聯,如果它能夠,attachment將迫使下載。

您可以強制使用例如HTML文件鏈接的HTML打開新標籤頁/窗口。

<a href="#" onclick="window.open('My.pdf', '_blank', 'fullscreen=yes'); return false;">My PDF</a> 

有關更多詳細信息,請參閱window.open()文檔。

相關問題