1

我有一个 servlet,当用户按下一个按钮时,它会生成一个动态 pdf(根据用户给定的数据)并将其下载到用户的 c:/ 位置。有人可以帮我怎么做吗?

4

2 回答 2

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();

并且不要忘记处理 IOException,我出于简单的目的而错过了它。

于 2012-06-11T14:52:28.153 回答
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/ 。

于 2012-06-11T14:47:28.537 回答