预先感谢大家-
我还没有找到一种简单的方法来执行此操作,但是是否可以接管写入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/