HttpServletRequest对象的生命是什么?

Pra*_*ale 5 java servlets request

我怀疑HttpServletRequest生命对象.在request对象销毁后,钻进controller

icz*_*cza 7

HttpServletRequest对象的生命周期就是:提供HTTP Servlet请求的时间.

它可以调用正确的servlet的之前创建doGet(),doPost()方法等,并在之后可能会被破坏.仅在提供请求期间使用它才有效.

注意:然而,Servlet容器可能会HttpServletRequest为多个请求重用对象(通常就是这种情况),但它们将被"清理"或重置,因此请求之间不会泄漏任何对象(如参数或属性).这仅仅是由于性能问题:重置HttpServletRequest对象比丢弃现有对象并创建新对象快得多,成本更低.

在典型的Servlet容器实现中,如果HTTP请求进入,HttpServletRequest则在Servlet容器解析请求的HTTP输入数据时立即创建.整个请求可能会被懒惰地初始化(例如,如果真的只是通过getParameter()方法访问参数,那么参数可能只会被解析和填充).然后该HttpServletRequest(延伸ServletRequest)通过Servlet过滤器,然后传递到Servlet.service()这将调度呼叫doGet(),doPost()等基于HTTP方法(GET,POST,PUT等等).然后请求仍然有效,直到请求 - 响应对在整个过滤器链中循环回来.然后它将被销毁或重置(在用于另一个HTTP请求之前).

  • 是的,您可以这样做,但在请求周期之外使用请求对象是无效的.因此强烈建议不要这样做. (3认同)