java - Spring MVC 如何处理响应

标签 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 中覆盖此行为,以便它们以相同的方式处理响应?

最佳答案

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

关于java - Spring MVC 如何处理响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16308312/

相关文章:

java - 在实际 Web 请求之外引用请求属性时如何避免 IllegalStateException

java - Springs CustomDateEditor 引诱犯错误?

java - Spring bean配置使用单例还是原型(prototype)?

python - 如何从 HTTP 响应接收 zip 文件

java - 将对象传递给方法时出现意外输出

java - 如何将 ZipPath 转换为文件?

asp.net-mvc - Controller httpresponsemessage 好的,但是ajax总是触发fail方法

.net - 为什么我的自定义 HttpResponse 在 HttpResponse.End() 上抛出异常?

java - 寻找程序的时间复杂度

Java ArrayList<GenericObject>.remove(GenericObject) 返回 false,但仍减少 ArrayList 的大小