繁体   English   中英

HttpServletRequest对象的生命是什么?

[英]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方法( GETPOSTPUTdoGet()调用doGet()doPost()等调用。 )。 然后请求仍然有效,直到请求 - 响应对在整个过滤器链中循环回来。 然后它将被销毁或重置(在用于另一个HTTP请求之前)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM