【问题标题】:How to read ServletOutputStream如何读取 ServletOutputStream
【发布时间】:2011-09-12 12:00:36
【问题描述】:

在我的 Web 应用程序中,我有两个 servlet,分别是 Servlet A 和 Servlet B。浏览器调用了 Servlet A。 Servlet A 调用 Servlet B 使用 RequestDispatcher 调用 include() 方法。

Servlet B 在 ServletOutputStream 上写入一些字节。

现在到 include() 方法的下一行,我想读取 Servlet B 写入的字节。我该怎么做?

代码摘要如下。

public class A extends HttpServlet {
   protected void doGet(HttpServletRequest request, HttpServletResponse response) {
     RequestDispatcher rd = request.getRequestDispatcher("/B");
     rd.include(request, response);

    // Now here i want to read bytes of ServletOutputStream for further processing
    // How do I?

   }
}

同样,我当然不能修改 servlet B 的代码。它是预定义的。其次,确定 servlet B 在 ServletOutputStream 上写入字节。

非常感谢任何帮助。

【问题讨论】:

  • rd.include(request, response) 不会导致 Servlet B 写出它的响应。它只会在 Servlet A包含 Servlet B 的响应。提交 Servlet As 响应然后为您读取可能性?

标签: servlets


【解决方案1】:

你应该看看HttpServletResponseWrapper。查看更多信息 herehere

【讨论】:

  • 谢谢 Kris,我通过 HttpServletResponseWrapper 并与 ServletFilter 一起解决了我的问题 :)
猜你喜欢
  • 2012-03-28
  • 2023-03-15
  • 2019-11-13
  • 2015-02-27
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2015-06-30
相关资源
最近更新 更多