
首先你客户端要跟服务器交互是要客户端主动发送请求
然后建立连接去 *** 作
就算你不手动选保存路径,那你还是要写代码去实现这个过程的
实现方式就两种了
bs跟cs架构均可
思路是一样的
BS:
servlet读取本地文件,然后以流的形式输出就行,注意要设置输出的MINE类型也就是contentType
你客户端写个程序通过http访问这个servlet,然后通过程序去保存到你移动硬盘
如果是cs架构的话,你的服务端监听socket
如果有客户端连接那就等待接收命令或者是直接往客户端传文件的二进制流
客户端:已启动就连接服务端,发送文件请求,处理回传的文件字节流
这种通常是如下做法:1:提供查询页面,让用户输入查询条件
2:根据查询条件到数据库去检索,并获取到对应的记录
3:生成csv到本地(可以省略,生成临时文件到tomcat的临时目录)
4:用读取文件,用response写流到客户端
我来说一下大致的实现步骤,具体实现需要你自己去写了1.检索数据,检索到的数据假定为一个list
2.你需要自己写一个objectToString之类的方法来把检索到的数据转化为一个String或StringBuffer,就是往各字段间插",",往个记录间插"\r\n",如此这类的转换,假定转换好的字符串为strResult.
3.然后用下面的代码写在后台来控制下载,文件名那里你可以把时间格式控制好,或者用前台传过来的参数做名字。
response.setContentType("application/downloadcharset=UTF-8")
response.setHeader("Content-disposition","attachmentfilename=\"" +new Date()+".csv\"")
OutputStream o = response.getOutputStream()
byte b[] = strResult.getBytes()
try{
o.write(b)
}catch(IOException e){
e.printStackTrace()
}finally{
o.close()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)