1、记得那次做一个下载,是生成利用excel模版生成文件,在jsp得到workbook对象,在利用out对象输出,利用浏览器下载,项目页面全是jsp的小脚本和js。
2、在ninemax中做的第一个下载,项目小,全是用jquery-ajax做的,弄得吧弄个下载就没其他更好的办法了,之后在服务器生成一个文件,再在客户端提示一个链接地址,在做这个之前还配了一个apache实现tomcat分发的配置,下载的POI生成的excel。
3、这个项目中用到的还是ssh,不再是用jsp+小脚本了,也没怎么用jquery+ajax,struts2用的是基于annotation的方式,之后才明白一个道理:文件下载,只要客户端接受到一个文件流,浏览器会自动监察到的,下载的是利用ITEXT生成的word文档。
jsp页面:略,只需要请求到下面的action就行。
action:(方法体和前面如何生成文档就略了:文档名包含中文(无乱码))
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/vnd.ms-word");
response.setHeader("content-disposition","attachment;filename="+URLEncoder.encode(file.getName(), "UTF-8"));
ServletOutputStream stream = response.getOutputStream();
FileInputStream in = new FileInputStream(file);
byte [] b = new byte[1024];
int x = 0;
while(( x = in.read(b)) > 0){
stream.write(b);
}
stream.flush();
in.close();
stream.close();
本文出自 “涓涓细流” 博客,请务必保留此出处http://870592772.blog.51cto.com/3589964/1080492