3

Spring MVC と webflow を使用しています。応答オブジェクトに直接書き込まなければならない場合があります。具体的には、サーバーが実行速度の遅い操作を実行している間、空の応答をブラウザーに継続的に送信するキープアライブ クラスがあり、応答に直接書き込みます。このクラスは、webflow で構築されたアプリケーションの一部と、Spring MVC のみを使用するサイトの一部で使用されます。Webflow を導入したとき、キープアライブ クラスが壊れました。どうやら、Webflowがブラウザーに応答を送信するときに、次のように呼び出します。

response.getWriter().print(stuff)

しかし、アプリのスプリング MVC 部分がブラウザーに応答を送信するときは、

response.getOutputStream().print(stuff)

Response は HttpServletResponse オブジェクトです。同じ応答で getWriter と getOutputStream を呼び出すことはできません。不正な状態の例外がスローされます。

Webflow または spring mvc でこの動作をオーバーライドして、応答を同じ方法で処理するにはどうすればよいですか?

4

1 に答える 1

1

サーブレット フィルターを使用できます。フィルターは、すべての出力を傍受し、別の方法で書き換えることができます。これの良い例は 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 に答える