java 模拟浏览网页_java实现下载功能模拟IE浏览器下载

[color=green][/color]

今天用java做了个简单的类似IE一样能够下载CVS格式的文件,刚开始由于前端代码是用ajax提交到后台,因此无论怎么做都无法实现,用firefox查看一切正常,但是返回的response总是空,进过调查发现好像不能用ajax提交,具体原因不是很明白,最后改成form提交一切正常,代码如下(play framework):

1,前段代码:

2,后台代码:

public static void download () {

try {

// 数据库中查询出来的数据

List list = Schedule.findAll();

//Generate binary data;

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

boolean first = true;

for (int i = 0; i < list.size(); i++) {

StringBuilder builder = new StringBuilder();

if (first) {

// 放入标题

String title = "Driver Number" + "," + "Vehicle Number" + "," + "Start Time" +    "," + "End Time" + "," + "Line" + "," + "Duty ID";

builder.append(title);

builder.append("\r\n");

first = false;

}

Schedule sch = (Schedule)list.get(i);

String str = sch.driver.number + "," + sch.vehicle.number + "," + sch.startTime + "," +sch.endTime + "," + sch.serviceNumber + "," + sch.dutyId;

builder.append(str);

builder.append("\r\n");

String line = builder.toString();

outputStream.write(line.getBytes("UTF-8"));

outputStream.flush();

}

outputStream.close();

byte[] data = outputStream.toByteArray();

//Create input stream

ByteArrayInputStream inputStream = new ByteArrayInputStream(data);

//Render attachment

renderBinary(inputStream, "schedule.csv", data.length, "text/csv", true);

} catch (IOException e) {

}

}

72ea9fb0820735dc4a2ab949b6127cc1.png

大小: 37.1 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2012-11-15 12:12

浏览 1454

评论

Java代码编写的简单网页浏览器,仿IE基础功能,只能解析标准的HTML文件,现在行的HTML5格式不能解析。使用方法:可直接输入文件名或网络地址,但必需事先连入网络。   JTextField jtfAddress; //输入html文件地址或网址   JButton jbGo; //转到文件按钮   JTextPane jtpShow; //显示文件   JLabel jlInfo; //提示信息   public HTTPBrowserDemo(){    super("html浏览器"); //调用父类构造函数    jtfAddress=new JTextField(20); //实例化地址输入框    jbGo=new JButton("转到"); //实例化转向按钮    jtpShow=new JTextPane(); //实例化显示内容框    jlInfo=new JLabel(); //实例化信息提示标签    JPanel panel=new JPanel(); //实例化面板    panel.add(new JLabel("地址")); //增加组件到面板上    panel.add(jtfAddress);    panel.add(jbGo);    JScrollPane jsp=new JScrollPane(jtpShow); //实例化滚动窗体    Container container=getContentPane(); //得到容器    container.add(panel,BorderLayout.NORTH); //增加组件到容器上    container.add(jsp,BorderLayout.CENTER);    container.add(jlInfo,BorderLayout.SOUTH);    jbGo.addActionListener(new ShowHTMLListener()); //事件处理,发生按钮点击时显示页面内容    jtfAddress.addActionListener(new ShowHTMLListener());    setSize(350,280); //设置窗口尺寸    setVisible(true); //设置窗口可视    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序   }   class ShowHTMLListener implements ActionListener { //显示页面内容事件处理    public void actionPerformed(ActionEvent event) {    try{    jlInfo.setText("正在连接..."); //显示提示信息    URL address=new URL(jtfAddress.getText()); //得到HTML页面的URL地址    jtpShow.setPage(address); //设置显示页面    jlInfo.setText("完成");    }    catch (Exception ex){    jlInfo.setText("连接出错");    ex.printStackTrace(); //输出出错信息    }    }   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值