java - Servlet 容器在调用 doPost 之前是否等待接收完整的 HTTP 请求?

标签 java jsp servlets

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/

相关文章:

java - 从记录器中过滤不需要的信息消息

java - KDB 到 JKS keystore 转换

java - 如何制作带显示的colspan :column

java - JSP在 session 中存储密码

java - JSP 页面模板布局

java - 如何为 Room 数据库的 @Entity 的字段编写循环

java - javafx可以打印到点阵打印机吗?

java - 如何将 ArrayList 从 Servlet 传递到 JSP 页面?

java - JSP JDBC SERVLET 显示 classnotfound 异常....一切都正确

java - JMX 和 Tomcat : create and use MBeans in a servlet