Servlets 文件究竟何时传输到服务器?

Servlets 文件究竟何时传输到服务器?,servlets,file-upload,multipart,Servlets,File Upload,Multipart,如果我有一个处理文件上传的servlet,那么服务器实际何时接收文件 当我调用HttpServletRequest::getParts时,它们是否已经可用?或者,只有当我实际调用相应的Part::write时,才会获取单个文件 换言之,是我的servlet负责实现所有文件的并行上游,还是我只需要担心将它们全部写入磁盘 当我调用HttpServletRequest::getParts 对 或者,仅当我实际调用相应的Part::write时,才会获取单个文件 从技术上讲,文件不会被提取。服务器实际上

如果我有一个处理文件上传的servlet,那么服务器实际何时接收文件

当我调用
HttpServletRequest::getParts
时,它们是否已经可用?或者,只有当我实际调用相应的
Part::write
时,才会获取单个文件

换言之,是我的servlet负责实现所有文件的并行上游,还是我只需要担心将它们全部写入磁盘

当我调用
HttpServletRequest::getParts

或者,仅当我实际调用相应的
Part::write
时,才会获取单个文件

从技术上讲,文件不会被提取。服务器实际上并不从客户端“下载”文件。客户端将文件作为请求主体的一部分发送到服务器,服务器只需侦听这些文件并在调用服务方法之前将其写入临时存储。服务器将仅在完全读取请求正文时调用服务方法。这与请求正文内容类型无关。因此,对上一个问题的回答是“是”

换言之,我的servlet是否负责实现所有文件的并行上游

绝对不是。您根本不需要同步
HttpServletRequest
上的任何内容。最多只能在
HttpSession
上使用,但即使这样也没有作用

还是我只需要担心将它们全部写入磁盘

是的,就是这样。只需抓取
部分
,验证它并最终编写它

另见: