我想在客户端浏览器的新标签页中显示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 :(得分:0)
这实际上与servlet或任何其他服务器端技术无关(或只是很少),打开新窗口/选项卡或保存对话框完全在浏览器的能力。服务器端所能做的只是为响应设置正确的HTTP标头,例如
created_at
try:
potions.pop()
except IndexError:
print "No potion left"
标题的response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"My.pdf\"");
部分告诉浏览器可以以内联方式显示文件,如果能够,inline
会强行下载
您可以使用例如
强制打开文件链接的HTML中的新标签/窗口Content-Disposition
有关详细信息,请参阅window.open()文档。