【问题标题】:HttpServletRequest reuseHttpServlet请求重用
【发布时间】:2014-10-26 22:20:36
【问题描述】:

似乎that some servlet containers 在请求之间重用了HttpServletRequest(或更一般地说,ServletRequest)实例。

问题:

有人可以指出 servlet 规范,其中定义了此行为(或引用此类实例的有效性规则)? p>

【问题讨论】:

    标签: java tomcat servlets web-applications application-server


    【解决方案1】:

    它没有在 Servlet API 中定义。这是一个实现细节。

    在 3.11 中用于请求对象(和 5.6 用于响应对象)

    每个请求对象仅在 servlet 的范围内有效 service 方法,或在过滤器的 doFilter 方法范围内, 除非为组件启用了异步处理并且 在请求对象上调用 startAsync 方法。在这种情况下 在发生异步处理的情况下,请求对象保持有效 在 AsyncContext 上调用直到完成。 容器常用 回收请求对象以避免性能开销 请求对象创建。 开发人员必须意识到维护 对未调用 startAsync 的请求对象的引用 不建议超出上述范围,因为它可能有 不确定的结果

    不是必需的,但常用。

    规范中的内容(参见第 2.3.3 章)是单线程模型。一个请求,一个线程。这允许清理和重用请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多