Servlet引擎(例如Tomcat
或Jetty
)接收到一个HTTP请求,并调用一个包含请求主体的InputStream
的HttpServletRequest
对象的servlet。在调用servlet之前,servlet引擎是否读取了整个请求?
现在我不知道如果发动机已经阅读从网络整体请求和InputStream
是在内存中只是一个缓冲或已读取请求部分当servlet调用InputStream.read
它实际上读取套接字。
Servlet引擎(例如Tomcat
或Jetty
)接收到一个HTTP请求,并调用一个包含请求主体的InputStream
的HttpServletRequest
对象的servlet。在调用servlet之前,servlet引擎是否读取了整个请求?
现在我不知道如果发动机已经阅读从网络整体请求和InputStream
是在内存中只是一个缓冲或已读取请求部分当servlet调用InputStream.read
它实际上读取套接字。
通常情况并非如此,因为请求主体可能非常庞大。如果内容长度已知且足够小,则servlet容器可以这样做。
至少在POST的情况下,它必须能够根据请求主体中的名称 - 值对形成requestParameterMap。
我很怀疑。它是否真的需要阅读整个身体来创建该地图? – Michael
当然是的。该地图必须以某种方式填充。 – EJP