当前位置:  开发笔记 > 编程语言 > 正文

如何读取HttpServletReponses输出流?

如何解决《如何读取HttpServletReponses输出流?》经验,为你挑选了1个好方法。

我想制作一个Servlet过滤器,它将在处理完成后读取Response的内容,并以XML或PDF或其他方式返回该信息.但我不知道如何从HttpServletResponse对象中获取任何信息.我怎样才能获得这些信息?



1> 小智..:

将其添加到过滤器java文件中.

static class MyHttpServletResponseWrapper 
  extends HttpServletResponseWrapper {

  private StringWriter sw = new StringWriter(BUFFER_SIZE);

  public MyHttpServletResponseWrapper(HttpServletResponse response) {
    super(response);
  }

  public PrintWriter getWriter() throws IOException {
    return new PrintWriter(sw);
  }

  public ServletOutputStream getOutputStream() throws IOException {
    throw new UnsupportedOperationException();
  }

  public String toString() {
    return sw.toString();
  }
}

使用以下代码:

HttpServletResponse httpResponse = (HttpServletResponse) response;
MyHttpServletResponseWrapper wrapper = 
  new MyHttpServletResponseWrapper(httpResponse);

chain.doFilter(request, wrapper);

String content = wrapper.toString();

内容变量现在具有输出流.您也可以为二进制内容执行此操作.


什么是'BUFFER_SIZE`的合理价值?
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有