a.jsp  <%
  // 得到文件名字和路径
  String filename = "dd.exe";
  String filepath = "D:\\";
  
  // 设置响应头和下载保存的文件名
  response.setContentType("APPLICATION/OCTET-STREAM");//这样设置头可以下载
  response.setHeader("Content-Disposition",
  "attachment; filename=\"" + filename + "\"");
 
  // 打开指定文件的流信息
  java.io.FileInputStream fileInputStream =
   new java.io.FileInputStream(filepath + filename);
   
  // 写出流信息
  int i;
  while ((i=fileInputStream.read()) != -1) {
   out.write(i);
  }
  fileInputStream.close();
  out.close();
 %>
 值得注意的是:在你要下载的文件内容里,除了文件的内容之外,不应该再附加有其它任何的字符,包括空格和回车换行符。我们有时在编写代码的时候,为了使代码清晰可读,往往会添加一些空格、制表符或者回车换行符,这样虽然看起来比较清晰,但有时可能会得不到正确的结果。