Spring MVC如何处理响应

时间:2013-04-30 20:19:35

标签: java spring-mvc httpresponse spring-webflow keep-alive

我使用Spring MVC和webflow。有时间我有义务直接写入响应对象。具体来说,我有一个keep-alive类,当服务器执行一些缓慢运行的操作时,它会不断向浏览器发送空响应,并直接写入响应。这个类在我的应用程序的一部分中使用,该应用程序构建在webflow上,也在我们站点的仅使用spring MVC的部分中使用。当我们介绍webflow时,我们的keep-alive课程就破了。显然,当webflow向其调用的浏览器发送响应时:

response.getWriter().print(stuff)

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

response.getOutputStream().print(stuff)

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

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

1 个答案:

答案 0 :(得分:1)

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