Tomcat:当HTTP Multipart请求被中断时会发生什么?

时间:2017-08-15 11:32:07

标签: java tomcat servlets file-upload

根据我对this的理解,当Tomcat服务器收到HTTP Multipart请求时,只有在完成所有部分的传输后才会调用servlet。

如果转移在中间被中断,会发生什么? (例如,如果客户端的网络连接在上传1Gb文件时丢失了吗?)在这种情况下何时调用servlet?

具体来说,我可以在我的servlet中看到一些未正确关闭的java.io.InputStream(可能来自中断的传输),但我希望服务器在调用servlet之前拒绝Multipart不完整?如何解释这些未正确关闭的文件? HTTP协议具有一些控制机制来防止不完整的请求。 (我正在使用Apache Commons FileUpload中的org.apache.commons.fileupload.FileItem

我的问题可能不是特定于Java / Tomcat。

1 个答案:

答案 0 :(得分:0)

Tomcat在这些年里不太可能忘记关闭Multipart流,尽管考虑到大量的错误并非不可能。但我的猜测是,这是你的应用程序代码中的其他地方。

通常,如果客户端无法正确上传多部分流,则这是协议级别的错误,与您的应用程序无关,因此服务器会处理它。这与有人调用网址但只输入前半部分大致相同。这全部由服务器处理,因为答案只能是在那时终止连接。