我想要一个servlet,当用户按下一个按钮时,它会生成动态pdf(根据用户给定的数据)并将其下载到用户的c:/ location。有人可以帮我怎么做吗?
答案 0 :(得分:4)
到底有什么不清楚的?如何写一个HTML表单?如何从HttpServletRequest获取参数?或者如何生成pdf并下载到用户?
<form action="yourServlet">
<input type="text" name="sometxt"/>
<input type="secret" name="passwd"/>
<input type="submit"/>
</form>
然后,您可以在getXXX方法中检索它,如
final String text = request.getParameter("sometxt");
final String rawPassword = request.getParameter("secret");
如果你需要渲染pdf,你应该看看Apache PdfBox。
最后,如果您在向用户下载文件时遇到问题:
response.setContentType("application/pdf");
InputStream in = ... // depends where you store your file
ServletOutputStream out = response.getOutputStream();
byte[] buffer = new byte[4096];
while(in.read(buffer, 0, 4096) != -1)
out.write(buffer, 0, 4096);
in.close();
out.flush();
out.close();
并且不要忘记handilng IOException,我错过了简单的目的。
答案 1 :(得分:3)
以下是下载文件的Java servlet的一个很好的示例:http://www.dzone.com/snippets/example-file-download-servlet。
请注意,无需询问用户下载文件的位置,该文件由浏览器下载机制处理。
这里还有一些有用的信息:http://www.mkyong.com/java/how-to-download-file-from-website-java-jsp/。