out.clearOutBuffer(); // 先把以前的输出清除,不过我建议你用servlet做,就可以避免这个问题
response.setHeader("Content-Disposition","attachment;filename="+filename); 

解决方案 »

  1.   

    谢谢,我采用的是OutputStream发送到response,OutputStream.write(),而不是用printWrite进行写出。到不了jsp页面处理就转化为application/pdf类型了,所以out.clearBuffer()通过哪个地方执行?
    我是通过servlet做的。
      

  2.   

    我在servlet里面读出pdf文件然后转化成数据流储存在缓存中,然后有浏览器接受一定设定的固定格式,如果clearBuffer()清除掉正在使用的缓存,那样在浏览器中还能正常显示出来吗?我的目的是修改浏览器中的标题,如果清除在使用的缓存数据还能不能保证?
      

  3.   

    建议楼主试试专门的在线PDF阅读控件吧,客户端无需安装adobe软件,直接通过ie阅读:
    http://www.ycanpdf.cn这个是在线demo:
    http://www.ycanpdf.cn/pdftest.html