2012-07-03 34 views
0

我试图写一个Servlet过滤器,在一定的条件下会读取由JSP文件和(使用XHTML解析器)的过程,它返回HTML响应,并提出一些修改,以使其在最终返回到浏览器之前(基本上,我试图实现一个全局更改以避免必须单独修改数百个JSP)捕获和更换的过滤器JSP响应

我正在使用Tomcat。我首先提供了HttpServletResponse和ServletOutputStream的包装器,然后再将它们传递回过滤器链。不过,我得到了一个“IllegalStateException:getOutputStream()已经被调用了这个响应。”当我们的一个taglib尝试使用由“this.pageContext.getOut()”返回的writer时,似乎会发生这种情况,所以我猜Tomcat使用的response/writer/outputstream不使用我通过的包装类过滤器。

有什么建议吗?还是有更好的方法来完成我想要做的事情?

回答

0

我想响应正在致力于传递回修改后的XML之前。

知道为什么响应承诺的原因,Look here

如果你不想得到的回应承诺,你应该做这两件事情:

  • 增加JSP缓冲区大小在页面指令

    <%@页缓冲器= “5kb的” 自动冲洗= “假” %>

  • 增加服务器默认最大缓冲区大小。

    ServletRespnse.setBufferSize()