我有一个需求就是用户在下载某个文件后,然后该页面还要跳转,可是在下载文件后,后面的跳转代码执行就产生错误了。比如说下载的代码是
response.setContentType("application/x-msdownload");  
            response.setHeader("Content-Disposition","attachment;filename="+new String(downloadFile.getBytes(),"ISO8859_1")+""); 
    OutputStream out = response.getOutputStream();
    if (fileInputStream != null) {
     int filelen = fileInputStream.available();
     byte a[] = new byte[filelen];
     fileInputStream.read(a);
     out.write(a);
    }
  
    fileInputStream.close();
    out.close();
跳转的代码是
response.sendRedirect(url);我如何做到即下载又能跳转呢?

解决方案 »

  1.   

    跳转不是request.getRequestDispatcher("/1.jsp").forword(request,response);吗?
      

  2.   

    LZ的意思是这样吗?
    1, 提交表单后,浏览器告知用户下载;
    2, 下载的同时,希望给页面跳转到其他页面,比如首页等。
    参考解决办法1:(没有测试)
    1, 提交表单弹出新的窗口,该窗口给出下载功能;(很多浏览器发现只是下载,会自动关闭该窗口或者不打开该窗口的)
    2, 原来的窗口跳转页面(最好有个时间延迟,比如5s钟)
    参考解决办法2:(没有测试)
    1, 提交表单后,进入服务页面;
    2, 服务页面给出下载功能;
    3, 页面跳转,使用js来控制,也就是客户端完成页面跳转。
    -------------------------
    细粒度权限管理软件试用版下载
    www.metadmin.com
      

  3.   

    不能在一个servlet或action中的下载之后做跳转。
    你可以使用内框架(iframe)帮助下载。就是用iframe的src提交下载请求,本页面不会刷新。
    如果你一定要在下载之后做跳转,那只有监听下载进度,并在下载之后跳转页面(技术很难实现)。
      

  4.   

    response已经用来输出了,不论是输出文字或者流,就没法跳转了,没办法的事情。跳转必然出错
      

  5.   

    感谢各位兄弟了,我原意是有一个下载的功能按钮(经过一定的运算再用下载输出到用户端),可是担心用户不停的点按钮,那样我的服务器运算会碰到些问题。因此我在用户点击按钮下载后把下载按钮禁用掉,希望在下载完成后再刷新一下页面从而使被禁用的按钮解禁。目前还是没有好的办法。7楼的yys79的解释我绝对是对的。我是做系统的,4楼兄弟给出的方法可以实现,但是治标不治本,而且客户不能接收。客户就希望越简单越好。还是感谢你们了。