我想在客户端浏览器的新标签中显示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使用它?
最佳答案
实际上,这与Servlet或任何其他服务器端技术无关(或很少),打开新窗口/标签或保存对话框完全在浏览器的权限范围内。您在服务器端可以做的就是为响应设置适当的HTTP标头,例如
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"My.pdf\"");
inline
标头的Content-Disposition
部分告诉浏览器,它可以内联显示文件,如果可以的话,attachment
将强制下载。您可以使用以下方式从链接文件的HTML强制打开新的标签页/窗口:
<a href="#" onclick="window.open('My.pdf', '_blank', 'fullscreen=yes'); return false;">My PDF</a>
有关更多详细信息,请参见window.open()文档。
关于java - 在新的浏览器窗口中打开Java pdf文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38745877/