【问题标题】:Is it possible to configure a Servlet not to automatically close the response's OutputStream?是否可以将 Servlet 配置为不自动关闭响应的 OutputStream?
【发布时间】:2012-07-03 14:21:20
【问题描述】:

即使在请求线程退出(即从不同的线程)之后,我也希望能够写入 HttpServletResponse 的 OutputStream。 问题是,当请求线程退出时,输出流会自动关闭。

我想知道是否有任何方法可以配置响应(或者可能是 Web 容器,在我的例子中是 Tomcat),以便除非我如此明确地订购,否则它的输出流不会被关闭?

谢谢。

【问题讨论】:

  • 我认为这不是一个好的设计,据我所知,Java EE 规范不支持。您能否解释一下您要完成的工作,而不是您要如何解决它?谢谢!
  • 这听起来像个黑客。您将失去 http 请求/响应的所有线程本地上下文。如果您需要操作流,请考虑改用过滤器。

标签: java tomcat servlets outputstream


【解决方案1】:

不,没有这样的事情。一旦 servlet 完成运行,response 将被发送回客户端,您不能再在 response 上进行写入。

确保在 servlet 中处理响应。

【讨论】:

    【解决方案2】:

    使用 Servlet 3.0 异步 servlet,您的 servlet 将有效地“永不”退出。它们是专门为这个问题设计的。如果您可以使用 Servlet 3.0,那么有几个“彗星”实现可以做到这一点。

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 2013-06-15
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 2010-11-28
      相关资源
      最近更新 更多