HttpServletResponse下载文件

//1、获取要下载的文件名称
String fileName = request.getParameter("filename");
    
//2、获取文件在tomcat里面的绝对路径地址
String path = getServletContext().getRealPath("download/" + fileName);
        
//让浏览器获取这份资源的时候,一下载的方式提醒用户,而不是直接展示。
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);

/*
 * 如果文件的名字带有中文,那么需要对这个文件名进行编码处理
 * 
 * 如果是IE,或者Chrome谷歌,使用URLEncoding编码
 * 
 * 如果是Firefox,使用Base64编码
 */
// 获取来访的客户端类型
String clientType = request.getHeader("User-Agent");

if (clientType.contains("Firefox")) {
	fileName = base64EncodeFileName(fileName);
} else {
	// 对IE或者Chrome谷歌浏览器
	// 对中文的名字进行编码处理
	fileName = URLEncoder.encode(fileName, "UTF-8");
}
        
//3、转化成输入流
InputStream is = new FileInputStream(path);        
OutputStream os = response.getOutputStream();
        
byte[] buffer = new byte[1024];
int len = 0;
while((len=is.read(buffer))!=-1) {
    os.write(buffer, 0, len);
}        
os.close();
is.close();


	让tomcat默认的servlet提供下载:
aa.jpg
bb.txt
cc.rar

手动编程提供下载:
aa.jpg
bb.txt
cc.rar
黑马.png

以上是servlet代码片段及html页面

你可能感兴趣的:(Servlet)