接管JspWriter

时间:2009-07-31 03:01:45

标签: java jsp tomcat

提前感谢所有人 -

我还没有找到一种简单的方法来实现这一点但是,是否有可能接管写入JspWriter的数据(标题和所有内容)的处理?有点像联络人动态管理缓冲区然后控制输出到JspWriter?我遇到了重定向的问题,其中状态标题已被刷新,因为我的一些包含(我认为它包括,但无论它是否正在刷新缓冲区)。

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

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

谢谢,

萨姆

1 个答案:

答案 0 :(得分:4)

您可以尝试编写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()方法并返回(或抛出异常)后,您可以使用缓冲响应执行任何操作 - 打印它,重定向到另一个页面,有什么。