私たちは、Swing 2 層アプリケーションを Web アプリケーション (Tomcat、Spring MVC、違いがあれば extJS) に移行しようとしています。
このようなコードがアプリケーションで見つかりました (単純化された Javaesc 疑似コード)。
class DoSomethingComplicatedAction extends Action{
public performAction(..){
// do lots of stuff here
// decend about 40 steps in the call stack
answer = JOptionPane.showConfirmDialog()
if (answer == something){
// do something convoluted here
} else {
// do something even more convoluted here
}
}
つまり、何らかの処理の途中で、ユーザーとの対話が開始されます。明らかに、サーブレットで直接それを行うことはできません。
これをかなりうまく処理できるのは、継続です。そこで、それらを使用できるかどうかを確認したところ、この種のものを有効にするライブラリが実際にあることに驚きました。
その質問で言及されているライブラリとその回答を確認すると、このステートメントに出くわしました
継続は、仕様が確定すると、標準の Servlet-3.0 中断可能リクエストに置き換えられます。提案された標準の一時停止/再開 API を実装する Jetty-7 の初期リリースが利用可能になりました
しかし、Servlet 3.0 API を使用して上記のようなことを行う方法の例を見つけることができませんでした
質問は次のとおりです。
上記のコードを 2 つ以上の個別のアクションに完全にリファクタリングすることなく、Servlet-3.0 API を使用して上記を実行できますか?
上記の答えが「はい」の場合: どのように? これまたは同様のユースケースのある程度完全な例はありますか?
Continuations または Servlet API を使用する必要がありますか? または、これに直接答えられない場合、この決定はどのような条件に依存しますか?