用response 开流方式 设置好contentType这个mime头信息
流写到客户端就可以了
你可以去FAQ看看。有下载的

解决方案 »

  1.   

    response.setContentType("application/x-msdownload");
       response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
      

  2.   

    response.setContentType("application/x-msdownload");
       response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
       response.sendRedirect("/TransferSave.xls");
    二楼的是不是这样写。还是不行,IE还是把它打开了。没有弹出下载对话框
      

  3.   

    楼上的  在web.xml里修改配置 ??怎样修改????能不能说清楚一些??
    谢了
      

  4.   

    就response.setContentType("application/x-msdownload");
       response.setHeader("Content-disposition","attachment; filename=xxx.xls" );
    就好了,不要重定向
    直接结束,IE会自动下载的
      

  5.   

    楼上的,response.setContentType("application/x-msdownload");
       response.setHeader("Content-disposition","attachment; filename=/TransferSave.xls" );
    我把xxx.xls替换成了要下载文件的文件名.
    这样写,下载对话框确实弹出了。但数据没有下载下来,只是一个空文件。
      

  6.   

    PrintWriter os = response.getWriter();
    然后 读取文件 将内容写入os
      

  7.   

    我倒是实现了,但很麻烦.大家帮改改.OutputStream osOut = null;
    File fIn = null;
    Workbook wbFile = null;
    WritableWorkbook wwbFile = null;osOut = response.getOutputStream();
    response.reset();
    fIn = new File("filename");
    wbFile = Workbook.getWorkbook(fIn);
    /* 设定输出文件头 */
    response.setHeader("Content-disposition", "attachment; filename=" + filename);
    /* 定义输出类型 */
    response.setContentType("application/msexcel");wwbFile = Workbook.createWorkbook(osOut,wbFile);
    wwbFile.write();
    wwbFile.close();
    wbFile.close();
    fIn.delete();
    osOut.close();
      

  8.   

    如果是现成的文件,并且在站点目录下,在页面上加一个链接,直接链接地址就行(最好是英文文件名),如果不在此目录下,用time_djb(菜鸟) 的方法
    如果自己生成此文件如下:
    <%
    response.setContentType("application/msexcel");
    response.setHeader("Content-disposition", "attachment; filename=" + filename);
    %>
    <html>
    //同通常的页面一样,只是不要有脚本、链接等
    </html>
      

  9.   

    import java.io.*;
    import java.net.MalformedURLException;
    import javax.servlet.ServletException;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.*;
     
    public class HelloWorldExample extends HttpServlet
    {
     
        public HelloWorldExample()
        {
        }
     
        public void doGet(HttpServletRequest request, HttpServletResponse res)
            throws IOException, ServletException
        {
            javax.servlet.ServletOutputStream out = res.getOutputStream();
            res.setContentType("application/pdf");
            res.setHeader("Content-disposition", "attachment; filename=Example.pdf");
            BufferedInputStream bis = null;
            BufferedOutputStream bos = null;
            try
            {
                FileInputStream fin = new FileInputStream("c:\\Reader.pdf");
                bis = new BufferedInputStream(fin);
                bos = new BufferedOutputStream(out);
                byte buff[] = new byte[2048];
                int bytesRead;
                while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) 
                    bos.write(buff, 0, bytesRead);
            }
            catch(MalformedURLException e)
            {
                System.out.println("MalformedURLException.");
                throw e;
            }
            catch(IOException e)
            {
                System.out.println("IOException.");
                throw e;
            }
            finally
            {
                if(bis != null)
                    bis.close();
                if(bos != null)
                    bos.close();
            }
        }
    }这是一个经过测试的 没有 错误的例子。
    我们的下载都是这么 作的。
    例子中是pdf 文件,
    你只要改动 setHeader
    setContentType 就可以使用了。