1

私は ajax と js の初心者です。

HTMLを含む単純なjspページがあります。すべての関数を定義した javascript ファイルが付属しています。json データをサーブレットに送信する関数が 1 つあります。 サーブレットからの応答を呼び出し元の js ファイルに戻す方法についてのみサポートが必要です。

ajax呼び出しを受信すると、サーブレットがpostメソッドで実行されます。

js ファイル名が First.js で、サーブレットが FirstServlet.java であるとします。

js からサーブレットにデータを送信する Javascript 部分:

    var fullpath="contextpath/FirstServlet";

    //Sending the tradedata using ajax to the FirstServlet
    $.ajax({
        dataType: 'json',
        url: fullpath,
        type: 'POST',
        data: {jsonText:jsonText}

  });

サーブレット側では、データにいくつかの変更を加え、動的な html を作成します。サーブレットの出力は、文字列変数に追加されたこのようなものになります。

 <div>
   <table>
     <tbody>
        <tr>
           <td>
            <input name="hi" value="hello" />
            </td>
           <td>
            <input name="bye" value="goodbye" />
            </td>
        </tr>
     </tbody>
   </table>
  </div>

このタグを呼び出したのと同じ JavaScript ファイルに戻したい//この部分の解決策が必要です。

最終目標: 次に、jsp ファイルにある div タグに追加したい //jquery を使用してこれを追加します。このようにして、iframe を使用せずに div コンテナーを更新できます。

4

1 に答える 1

1

Javaサーブレットを使用している場合は、カスタムHttpServletを構築する必要があります。これは、関数doGet(HttpServletRequest req, HttpServletResponse resp)とを実装する必要がありdoPost(HttpRequest req, HttpResponse resp)ます。特定のドメイン名(例では)をカスタムサーブレットクラス(web.xmlファイル内)にマップすると、サーブレットはすべてのリクエストをdoGet関数またはdoPost関数にcontextpath/FirstServlet自動的にルーティングします。getpost

次に、HttpServletRequest(参照)で使用可能な関数を使用して、受信したデータを処理できます。次に、クライアントに送り返したいものをHttpServletResponseに配置すると(以下のリンク例を参照)、サーブレットはHttpServletResponseをクライアントに自動的に送り返します。

クライアント側から応答データを受信するには、次のように、ajaxリクエストの最後の引数としてコールバック関数(2つの引数を受け入れる。ここのリファレンスを参照)を追加する必要があります。

$.ajax({
    dataType: 'json',
    url: fullpath,
    type: 'POST',
    data: {jsonText:jsonText}

}, function(responseData, textStatus) {
    console.log(responseData);
    //do something with responseData
});

これがサーブレットの簡単な例です

于 2012-08-02T23:39:51.457 に答える