一旦服务器完成请求并且响应返回给客户端,请求及其属性就不再可供客户端使用,并且可以由JVM进行垃圾收集。
来自:编辑雅加达Struts,第二版由Chuck Cavaness
问题:
作者不是这样说的,“服务器不再提供请求及其属性吗?”客户端是始发端点。
垃圾收集器清理服务器JVM可用的堆内存。浏览器(客户端)不使用堆。
Web容器将请求属性集成到HttpServletRequest对象中。
何时HttpServletRequest和HttpServletResponse对象被垃圾收集?
HTTP响应被发送回客户端时,HTTP请求的生命周期是不是已经过了?生命周期不包括客户端对响应的处理方式?
答案 0 :(得分:0)
作者不是这样说的,“请求及其属性不再可用于服务器?”客户端是始发端点。
作为Java对象的请求(及其属性)在服务器中处理,但客户端是发送请求的人。这就是为什么作者可能会提到请求属于客户端而不是服务器。在处理请求之后,它没有用处,因此被删除(HTTP概念),但在Java Web Server中,驻留在服务器中的ServletRequest
对象(通常作为HttpServletRequest
处理)将不再是可用,所以它将被垃圾收集。
垃圾收集器清理服务器JVM可用的堆内存。浏览器(客户端)不使用堆。
在第一个答案的最后部分回答。
请求属性由Web容器集成到HttpServletRequest对象中。
您混淆了HTTP请求(GET,POST等)中的属性以及可以通过HttpServletRequest#getAttribute(String)
访问的HttpServletRequest
属性。您可以使用提供的链接中的函数访问HTTP请求属性,如character encoding,content type和request parameters,您还可以使用{中的其他函数知道其他HTTP属性{1}}界面。
何时HttpServletRequest和HttpServletResponse对象被垃圾收集?
提交并完成HTTP响应后。请参阅How do servlets work? Instantiation, session variables and multithreading
当HTTP响应被发送回客户端时,HTTP请求的生命周期是否结束?生命周期不包括客户端对响应做了什么?
一旦响应到达客户端,由客户决定如何处理它。请注意,您可以拥有:ajax请求,完整HTTP请求,资源请求(例如,JS,CSS和图像),portlet Requests ...