预先感谢大家-

我还没有找到一种简单的方法来执行此操作,但是是否可以接管写入JspWriter的数据(标头和所有内容)的处理?有点像联络员来动态管理该缓冲区,然后控制向JspWriter的输出?我遇到了一些重定向问题,其中由于我的某些包含而已经清除了状态标头(我认为是包含,但无论它是否确实清除了缓冲区)。

我知道设置缓冲区大小等。

我没有在tomcat上使用纯jsp框架。

谢谢,

山姆

最佳答案

您可以尝试编写Filter并将其映射为拦截您的JSP:

(excerpt from web.xml)
<filter>
  <filter-name>jspFilter</filter-name>
  <filter-class>com.mypackage.JspFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>jspFilter</filter-name>
  <url-pattern>*.jsp</url-pattern>
</filter-mapping>


在您的doFilter()方法实现中,您可以通过扩展HttpServletResponseWrapper并覆盖其getWriter() / getOutputStream()方法来使用StringWriter缓冲响应,从而将servlet响应包装为您自己的响应。调用doFilter()方法并返回(或引发异常)后,您可以对缓冲的响应做任何您想做的事情-打印它,重定向到另一页,您拥有什么。

关于java - 接管JspWriter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1210495/

10-10 23:01