问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

通过java (servlet) 实现两个web工程间的文件传输

发布网友 发布时间:2022-04-15 06:14

我来回答

4个回答

热心网友 时间:2022-04-15 07:43

这个思路很简单,如下:

1、访问A的servlet,我们在这个Servlet里面取到这个文件,这个很容易是吧
2、在A的servlet将取到的文件(inputstrema格式),以post的形式,模拟表单提交给B的servlet
3、在B的servlet里面接收,就像接收普通的表单上传的一样

下面是一些上传和接收的核心代码,使用的httpclient

A里面的上传:
HttpClient httpclient = new DefaultHttpClient();
String url = “这里是B的servlet的访问的地址,全地址”;
HttpPost httppost = new HttpPost(url);
// 一个本地的文件
InputStreamBody fileis = new InputStreamBody(is, fileName);
// 多部分的实体
MultipartEntity reqEntity = new MultipartEntity();
// 增加
reqEntity.addPart("bin", fileis);
// 设置
httppost.setEntity(reqEntity);
HttpResponse responses = null;
try {
responses = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (Validator.isNotNull(responses)) {
int httpstatus = responses.getStatusLine().getStatusCode();
if(httpstatus!=200){
System.out.println(url+"访问错误,http状态"+httpstatus);
}
}
B里面接收文件的核心代码,使用的fileupload
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = new ArrayList();

try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
FileItem file = null;
if (items.size()>0) {
file =(FileItem)items.get(0);
}

热心网友 时间:2022-04-15 09:01

因为A要读取本地文件发送给B,所以在B的servlet中写一个doPost方法,接收一个参数parm。
A读取到本地文件后,将该文件的物理路径改为A服务器的HTTP路径,将该路径作为parm的值传递给B。B获取到这个路径后,使用URLConnection类按字节读取就可以了。
但文件大的时候,这种方法可能会因为网络的不稳定出现丢数据的问题。最好的方法仍然是通过socket连接

热心网友 时间:2022-04-15 10:36

你这个需求挺好的,我一直想做,还没来得及(我要做的是数据库异地备份)

其实就是文件上传功能

比较简单的方法:就是你在工程A的一个页面罗列出要备份的文件名称(配合file标签),后面加个按钮,按钮绑定工程B的上传路径.

要罗列的文件可根据你的需要做筛选(这个在工程A实现)
存放的路径也可自行定义(这个在工程B实现)

你本地测试可部署两个tomcat,分别发布工程A和工程B,注意两个端口不能一致.

可能有其他的好办法,如果有,请贴出,学习下

热心网友 时间:2022-04-15 12:27

如下:
<form action="home.jsp" method=post>
<form action="Sreach" method="post">
<input type="text" style="height: 24px;width: 200px" name="m">
<select name="n">
<option value="TitleName">标题</option>
<option value="Creator" >作者</option>
<option value="Type" >类别</option>
<option value="id" >ID</option>
<input type="submit" value="搜索">
</select>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 QQ国际版 微博不能传图? 发朋友圈文字怎样编辑才可以全部看到 南天pr2e打印机 怎样设置连打? 南天pr2e打印机打出来的左边比右边的颜色浅,哪里可以调吗? 南天PR2E打印机最近打印出的字不清楚,有简单的修理办法吗 南天pr2e 打*错位怎么调间距? *打印出字体偏大,整体偏下。求高手秒杀 南天PR2E 打印机的几个怪问题,怎么设置为好 南天PR2E打印时把纸打烂了 您好 南天Pr2E打印力度怎么调,力度太重。纸都打破了 PR2E打印机打印力度 建筑防水材料质量,功能方面有哪些要求 小米3拍照时,怎么开闪光灯呀!? 用英语写一篇五十词左右的学习英语的计划书 斗鱼tv申请房间处描述怎么填写 英语学习计划书,写信格式 小学英语 计划书怎么写 我想请你帮忙写一篇六年级新学期的英语计划书,一共要十条,再帮忙翻 求用英语写一篇大学计划书(250单词) 计划书的英文怎么写 求一份英语学习计划书 谁告诉我一下行测中所涉及的数学知识,要求详细一点 行测数学方面可以自学么? 行测中的数学题怎么才能快速提高! 公务员行测里的数学题大概是个什么水平 怎样提高行测的数学能力 行测中的数学,是不是得分率最低啊 公务员行测试卷中数学题大概占多少比例? 两万块存期一年 开通了约定转存的 现在第五年了还没到期现在取款能拿多少? 农行定期存款1年到期未及时提取转账已经过了好几年了期间我都没去取过 这几年利息怎么算的? 定期存款5年以上本人不去给转存吗 我在上面写着一年期。约定转存一年期。我想知道这个还需要去银行吗?是不是自动存上了 bcase和小米什么关系 金典数码商城卖的小米配件是真货还是假的? 数码配件哪家好? 优胜仕和小米的充电头哪个好? 小米电子产品上那些字是怎么做上去的? 大牌授权从什么渠道可以拿到,华为小米数码产品在哪里找? 小米m1s手机保护壳哪有卖,求达人给个连接神马的,男生用,tb上有两款萌系的就不要推荐了 小米3的手机壳前面全都包住的,只留屏幕的,那叫什么 周公解梦梦见和大鸟说话,被鸟咬烂衣服