Servlets 如何使用HttpServletRequest#getPart(名称)延迟流式传输

Servlets 如何使用HttpServletRequest#getPart(名称)延迟流式传输,servlets,Servlets,我使用的是Jetty 9的实现,它似乎在继续之前急切地处理整个请求(或者至少是有问题的部分),即使生成的部分公开了一个getInputStream()方法 有没有办法让getPart立即返回,并将请求流保留到生成的Part的InputStream 以下是我的Servlet实现中的相关代码片段供参考: override def doPost(req: HttpServletRequest, res: HttpServletResponse) { println("ABOUT TO GET PA

我使用的是Jetty 9的实现,它似乎在继续之前急切地处理整个请求(或者至少是有问题的
部分),即使生成的
部分
公开了一个
getInputStream()
方法

有没有办法让
getPart
立即返回,并将请求流保留到生成的
Part
InputStream

以下是我的
Servlet
实现中的相关代码片段供参考:

override def doPost(req: HttpServletRequest, res: HttpServletResponse) {
  println("ABOUT TO GET PART") // this happens immediately
  val file = req.getPart("file")
  println("GOT PART") // it takes a long time to get here if the upload is large

这很无聊,但可以通过以下方式完成:

这需要使用
HttpServletRequest#getInputStream()
中的
InputStream
,以及HTTP请求内容类型中编码的边界分隔符:

Content-Type: multipart/form-data; boundary=------------------------bd019839518ca918
Content-Type: multipart/form-data; boundary=------------------------bd019839518ca918