作者的意思不是说“请求及其属性不再对服务器可用吗?” 客户端是发起端点。
作为 Java 对象的请求(及其属性)在服务器中处理,但客户端是发送请求的人。这就是为什么作者可能会提到请求属于客户端而不是服务器的原因。处理完请求后,它没有任何用处,因此被丢弃(HTTP 概念),但在 Java Web Server 中,驻留在服务器中的ServletRequest
对象(通常处理为HttpServletRequest
)将不再可用,因此将被垃圾回收。
垃圾收集器清理服务器 JVM 可用的堆内存。浏览器(客户端)不使用堆。
在第一个答案的最后部分回答。
请求属性由 Web 容器集成到 HttpServletRequest 对象中。
您混淆了来自 HTTP 请求(GET、POST 等)的HttpServletRequest
属性和可以通过HttpServletRequest#getAttribute(String)
. 您可以通过提供的链接中的函数访问HTTP请求的属性,如字符编码、内容类型和请求参数,您也可以通过HttpServletRequest
界面中的其他函数了解其他HTTP属性。
HttpServletRequest 和 HttpServletResponse 对象何时进行垃圾收集?
在 HTTP 响应提交并完成之后。请参阅servlet 是如何工作的?实例化、会话变量和多线程
在将 HTTP 响应发送回客户端的那一刻,HTTP 请求的生命周期不是已经结束了吗?生命周期不包括客户端对响应的处理?
一旦响应到达客户端,由客户端决定如何处理它。请注意,您可以拥有:ajax 请求、完整的 HTTP 请求、资源请求(例如,用于 JS、CSS 和图像)、portlet 请求......