提前感谢所有人 -
我还没有找到一种简单的方法来实现这一点但是,是否有可能接管写入JspWriter的数据(标题和所有内容)的处理?有点像联络人动态管理缓冲区然后控制输出到JspWriter?我遇到了重定向的问题,其中状态标题已被刷新,因为我的一些包含(我认为它包括,但无论它是否正在刷新缓冲区)。
我知道设置缓冲区大小等。
我没有使用框架,只是在tomcat上使用纯jsp。
谢谢,
萨姆
答案 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()
方法并返回(或抛出异常)后,您可以使用缓冲响应执行任何操作 - 打印它,重定向到另一个页面,有什么。