概要:Java Web应用在给浏览器返回动态生成的PDF文件时,要确保发送的HTTP header消息中正确设置了相应参数,否则浏览器可能无法获取到或者获取到错误的PDF文件。整理了下这些参数的设置方法,还有遇到的一些问题,记录下来避免以后再走弯路。
HTTP header部分相关参数主要有:
contentType: 说明 body部分的格式,是HTML还是PDF、JPG等
Cache-Control: 告诉浏览器发送的内容能否缓存,静态图片等缓存可以避免重复向服务器请求,而一些每次都会改变的内容则不希望缓存,比如查询账户余额情况。
实际上由于不同浏览器对标准的支持差异、网络环境等因素,还需要进行一些特殊处理。
Java Web应用生成PDF、图片等二进制内容,推荐的方式是使用servlet, 下面是《iText in Action》中的例子:
public class Hello extends HttpServlet {
protected void doGet(
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String text = request.getParameter("text");
if (te
protected void doGet(
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String text = request.getParameter("text");
if (te