[英]What is a life of HttpServletRequest object?
我对HttpServletRequest
生命对象有疑问。 request
对象进入controller
后是否被销毁?
HttpServletRequest
对象的生命周期就是:提供HTTP Servlet请求的时间。
它可以在调用servlet的doGet()
, doPost()
等方法之前创建,并且可能在此之后被销毁。 仅在提供请求期间使用它才有效。
注意:然而,Servlet容器可能会将 HttpServletRequest
对象重用于多个请求(通常就是这种情况),但它们将被“清理”或重置,因此请求之间不会泄漏任何对象(如参数或属性)。 这仅仅是由于性能问题:重置HttpServletRequest
对象比抛弃现有对象并创建新对象要快得多,也便宜得多。
在典型的Servlet容器实现中,如果HTTP请求进入,则在Servlet容器解析请求的HTTP输入数据时立即创建HttpServletRequest
。 整个请求可能会被懒惰地初始化(例如,如果真的访问参数,例如通过getParameter()
方法,则只能解析和填充参数)。 然后这个HttpServletRequest
(扩展ServletRequest
)通过Servlet过滤器传递,然后传递给Servlet.service()
,它将根据HTTP方法( GET
, POST
, PUT
等doGet()
调用doGet()
, doPost()
等调用。 )。 然后请求仍然有效,直到请求 - 响应对在整个过滤器链中循环回来。 然后它将被销毁或重置(在用于另一个HTTP请求之前)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.