我想问,在servlet中如何把结果集存入outputStream,然后客户端用inputStream读取结果下面有个查询结果是一件的例子,如果是多件结果,用while(w_result.next())循环
也可以实现,但是这样做,用InputStream读取的话,字段都连在一起,又没有
好的办法可以方便存取呢。或者又没有办法把数组(或者hashtable)存入OutputStream?
ResultSet w_result = w_statement.executeQuery
("select data from t_test where name = '" + w_name + "'");
//读入SQL执行结果
w_result.next();
w_data = w_result.getString("data");
w_result.close();
//关闭处理
w_statement.close();
w_connect.close();
} catch (Exception e) {
}
byte[] w_res = w_data.getBytes("SJIS");
p_response.setContentType("application/octet-stream");
p_response.setContentLength(w_res.length);
OutputStream w_os = p_response.getOutputStream();
w_os.write(w_res);
w_os.close();
也可以实现,但是这样做,用InputStream读取的话,字段都连在一起,又没有
好的办法可以方便存取呢。或者又没有办法把数组(或者hashtable)存入OutputStream?
ResultSet w_result = w_statement.executeQuery
("select data from t_test where name = '" + w_name + "'");
//读入SQL执行结果
w_result.next();
w_data = w_result.getString("data");
w_result.close();
//关闭处理
w_statement.close();
w_connect.close();
} catch (Exception e) {
}
byte[] w_res = w_data.getBytes("SJIS");
p_response.setContentType("application/octet-stream");
p_response.setContentLength(w_res.length);
OutputStream w_os = p_response.getOutputStream();
w_os.write(w_res);
w_os.close();
}catch()
finnaly()
{
try{
if(w_result!=null){
w_result.close()
}
}
}
用List
常用的方法都是将数据库中的字段对应的建立一个pojo
List<Pojo> list=new ArrayList<Pojo>();
将数据添加到Pojo类中,最后全部塞给List,在客户端直接循环遍历显示就行了么!
在前台进行解析当然用pojo然后放到response中也是可以的。
所以客户端request,服务器端response,只有通过outputStream和inputStream来传递接收数据
flybird和我想的差不多,取得的结果字段用;等字符隔开,每个结果集用换行符(/n)加以区分后写入
outputStream客户端inputStream读取之后,再解析(有点麻烦,但没有更好的方法了吧?)