私は Java EE ベースのアプリケーションに取り組んでおり、そこで AJAX を多用しています。そこでは、2 種類の手法を使用して ajax 応答を記述します。
1)ajaxを介していくつかのデータを渡します
res.setContentType("text/xml");
res.setHeader("Cache-Control", "no-cache");
PrintWriter writer = null;
writer = res.getWriter();
StringBuffer xmlDoc = new StringBuffer("<?xml version='1.0'?>");
xmlDoc.append("<selectChoice>");
xmlDoc.append("<selectElement>");
writer.print(xmlDoc.toString());
writer.flush();
writer.close();
2) ajax 経由で完全な JSP フラグメントを送信する
最初にajax呼び出しサーブレット、次にサーブレットがいくつかの変数セッションを設定し、次に以前に保存された変数をレンダリングしたjspページに転送します
RequestDispatcher disp = context.getRequestDispatcher(APP_pagePath + page);
disp.forward((HttpServletRequest)req, res);
最初のものでは、標準的な方法として、flush() メソッドを使用します。次に、私の質問は、2 番目のシナリオ (dispatcher.forward) での処理方法です。そこでは、明示的に flush() しません。これら 2 つの違いと、2 番目のシナリオでフラッシュがどのように処理されるかを説明してください。