import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//实现文件下载,注意如果有中文字符的处理
public class ServletDemo4 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = this.getServletContext().getRealPath("/download/八卦知识.rmvb");//路径存在中文字符
String filename = path.substring(path.lastIndexOf("\\")+1);
response.setHeader("Content-disposition", "attachment;filename="+URLEncoder.encode(filename, "UTF-8"));//路径字符处理
FileInputStream in = new FileInputStream(path);
OutputStream out = response.getOutputStream();
byte[] bytes = new byte[1024*10];
int len = -1;
int i = 0;
while((len=in.read(bytes)) != -1){
out.write(bytes, 0, len);
}
}
}