Servlet 容器何时调用 doPost/doGet 方法?在开始处理之前是否等待接收来自 Web 客户端的完整请求。或者在接收到 HTTP header 并识别出 HTTP 请求的方法(POST、GET 等)后立即调用方法(doPost 或 doGet)?
我的问题与以下链接中提出的问题完全相同: Does servlet engine read the whole request before calling a servlet?
除此之外,假设 servlet 容器在识别 HTTP 方法和内容长度后立即调用 doPost/doGet 方法,如果 Web 客户端在完整的 HTTP 请求发送到 Web 服务器之前终止,会发生什么情况/servlet 容器。 Servlet 线程如何知道收到的请求未完成。
最佳答案
嗯,我认为没有收到完整的内容,您得到的是一个可以从中读取内容的流。
How will the servlet thread be aware that the request received is not complete.
好吧,你有内容长度,这就是容器在请求时必须从流中读取的内容长度,如果流由于某种原因不可用,容器将抛出异常。如果你收到所有数据后客户端断开连接也是一样;在您回写之前,您不会知道客户端已断开连接。
关于java - Servlet 容器在调用 doPost 之前是否等待接收完整的 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22668071/