3

我使用 Spring MVC 和 webflow。有时我不得不直接写入响应对象。具体来说,我有一个保持活动状态的类,当服务器执行一些运行缓慢的操作时,它会不断地将空响应发送回浏览器,然后我直接写入响应。这个类用于我基于 webflow 构建的应用程序的一部分,以及我们网站中仅使用 spring MVC 的部分。当我们引入 webflow 时,我们的 keep-alive 类坏了。显然,当 webflow 向它调用的浏览器发送响应时:

response.getWriter().print(stuff)

但是当我们应用程序的 spring MVC 部分向浏览器发送响应时,它使用

response.getOutputStream().print(stuff)

Response 是一个 HttpServletResponse 对象。您不能在同一响应上调用 getWriter 和 getOutputStream。将抛出非法状态异常。

如何在 webflow 或 spring mvc 中覆盖此行为,以便它们以相同的方式处理响应?

4

1 回答 1

1

您可以使用 servlet 过滤器。过滤器可以拦截所有输出并以另一种方式重写。一个很好的例子是 jsonp 过滤器:http: //jpgmr.wordpress.com/2010/07/28/tutorial-implementing-a-servlet-filter-for-jsonp-callback-with-springs-delegatingfilterproxy/

于 2013-04-30T23:51:17.467 回答