IE保存弹出框

今天做项目的时候遇到问题,调查的过程中想知道下载的时候IE8中的保存弹出框是什么时候弹出的。

结果debug发现,当输出流关闭的时候才弹出这个框框。

而chrome是在写的时候就开始下载,然后输出流关闭的时候就下载完成。

以下是调试的代码

View Code
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;

public class DownloadAction extends ActionSupport implements ServletResponseAware{

    HttpServletResponse response;
    public String down(){
        try {
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment;filename=test.txt" );
            System.out.println("download begin");
            PrintWriter pw = new PrintWriter(response.getOutputStream());
            GetData.getData(pw);
            pw.close();
            System.out.println("download end.....");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public void setServletResponse(HttpServletResponse arg0) {
        this.response = arg0;
    }
}
View Code
public class GetData {
    
    public static  void getData(PrintWriter pw){
        try {

            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbms","root","goodluck");
            PreparedStatement stm = con.prepareStatement("select * from fileCreate");
            ResultSet rs = stm.executeQuery();
            while(rs.next()){
                System.out.println("download process.....");
                pw.write(rs.getString(1)+"\r\n");
            }
            pw.flush();
            con.close();
            System.out.println("download close.....");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}
posted @ 2012-11-23 17:42  lanse_yan  阅读(306)  评论(0编辑  收藏  举报