首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复提交

重复提交
EN

Stack Overflow用户
提问于 2013-12-10 10:44:07
回答 1查看 927关注 0票数 2

我的问题是我提交了一个文件供上传。在服务器处理文件大约3分钟后(在将响应写入输出流之前),需要重新提交文件。我不知道发起重新提交的进程是什么。我怀疑这是来自客户的东西。

我在服务器上的设置是一个类,它扩展了在HttpServlet中映射的web.xml中的doPost。

代码语言:javascript
复制
<servlet>
  <servlet-name>rest</servlet-name>
  <servlet-class>com.myorg.MyServlet</servlet-class>
</servlet>

在客户机上有一个带有提交按钮的简单表单。

代码语言:javascript
复制
<form method='post' enctype='multipart/form-data' action='/MyJavaApplication/ws/rest'>
  <input name='uploadFile' type='file' size='45'/>
  <input name='submit' type='submit' value='Upload Document'/>
</form>

当我查看初始提交和重复提交中的堆栈跟踪时,我看到了完全相同的入口点:

代码语言:javascript
复制
QueuedThreadPool$PoolThread.run line 582

有许多servlet过滤器,例如,我们使用spring安全性,还有一些自定义过滤器,它们在传递请求之前记录请求。

我真的被这个问题弄得不知所措,所以任何帮助都将不胜感激。

注意:这是一个Jetty6.1.26问题--更改为版本8解决了问题

EN

回答 1

Stack Overflow用户

发布于 2013-12-10 11:06:50

是上传需要很长时间,还是服务器在上传后处理文件?

如果是服务器处理,下面是我的建议:

在不同的线程中处理上传的文件。这意味着servlet能够在处理仍在进行中时发送响应。为了防止重新提交,servlet可以通过重定向来响应:

代码语言:javascript
复制
response.sendRedirect("results-page-url");  //change the url to suit your app 

任何重新提交的文件都将直接转到重定向的URL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20492303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档