-
package demo;
-
-
-
-
-
-
-
-
-
-
-
import java.
util.
logging.
Logger;
-
-
import javax.faces.application.Application;
-
import javax.faces.context.FacesContext;
-
-
import javax.servlet.ServletOutputStream;
-
import javax.servlet.http.HttpServletResponse;
-
-
import org.operamasks.faces.annotation.ManagedBean;
-
import org.operamasks.faces.annotation.ManagedBeanScope;
-
-
public class DownFile {
-
-
//OaMailAttach oaMailAttach = getOaMailAttach();
-
-
-
String fileName="20074111452140.doc";
-
-
try {
-
FacesContext ctx = FacesContext.getCurrentInstance();
-
ctx.responseComplete();
-
//String contentType = "application/octet-stream;charset=utf-8";
-
String contentType = "application/x-download";
-
HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
-
-
-
-
response.setContentType(contentType);
-
-
StringBuffer contentDisposition = new StringBuffer();
-
-
contentDisposition.append("attachment;");
-
-
contentDisposition.append("filename=\"");
-
contentDisposition.append(fileName);
-
contentDisposition.append("\"");
-
//log.debug(System.getProperty("file.encoding"));
-
response.
setHeader("Content-Disposition",
new String(contentDisposition.
toString().
getBytes(System.
getProperty("file.encoding")),
"iso8859_1"));
-
// log.debug(contentDisposition.toString());
-
ServletOutputStream out = response.getOutputStream();
-
-
//log.debug(new Long(oaMailAttach.getAtFile().length()));
-
-
byte[] bytes = new byte[0xffff];
-
-
int b = 0;
-
while ((b = is.read(bytes, 0, 0xffff)) > 0) {
-
out.write(bytes, 0, b);
-
}
-
is.close();
-
out.flush();
-
ctx.responseComplete();
-
-
// TODO 自动生成 catch 块
-
e.printStackTrace();
-
}
-
return null;
-
}
-
-
}
关键语句:ctx.responseComplete();
不然会报错误如下:
Servlet response already use stream, Writer not possible
分享到:
相关推荐
本文当主要介绍了JSF的入门编程以及一些关键文件的配置,希望对你有所帮助,谢谢!
这是2个压缩包中的第二个,请一并将第一个下载后,随便解压其中一个即可。 如果只希望下载其中一部分即可阅读,可下载另一个pdf: http://download.csdn.net/detail/oqqsun12345678/5215337 内容简介 出版日期: ...
JSF的增删改查,非常简单的页面,关键代码仅4个文件
这是2个压缩包中的第一个,请与第二个一并下载,然后随便解压其中一个即可。如果只想下载其中一部分,可下载pdf: http://download.csdn.net/detail/oqqsun12345678/5215337 这个pdf是665页中的前404页,后面200多页...
在这篇文章中,将对JSF框架和组成JSF框架的各种关键部件进行一个简单的介绍,接下来详细介绍JSF的请求处理生命周期的各种状态,然后提供一个简单的应用来示范其各种特性。 由于文件较大,WINRAR分两部上传
在这篇文章中,将对JSF框架和组成JSF框架的各种关键部件进行一个简单的介绍,接下来详细介绍JSF的请求处理生命周期的各种状态,然后提供一个简单的应用来示范其各种特性。 由于文件较大,WINRAR分两部分上传
这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...
2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 ...
尽管这项技术令人振奋,但是它的说明文档却仍然少得可怜——大多数的指南都太简单,那些要编写复杂Web应用程序的开发人员根本找不到所需的关键信息。本书第二版为了填补这个信息缺口,针对最近发布的Struts 1.1版...
这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 ...
2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 ...