パラメータとして ID を取得し、3 つの値を返すサーブレットがあります。サーブレット コードは大きいので、必要な詳細だけを指定します。
getdetails.jsp
Inputs : ID //as a query string
Returns: ID, average, count // As a JSON string
クライアント側から、異なる ID を使用して 2 つの非同期 JavaScript リクエストを 1 つずつ (最初のリクエストの直後の 2 番目) 作成しています。サーバーからの応答は次のとおりです
。
For ID1 : ID1, average1, count1
For ID2 : ID1, average2, count2
ID2 の場合、正しい平均とカウントが得られますが、ID1 (最初のリクエストの ID) が返されます。
getdetails1.jsp の getdetails.jsp に同じコードを入れて、各サーブレットに各リクエストを行うと、正しい結果が得られます。
反応:
For ID1 : ID1, average1, count1
For ID2 : ID2, average2, count2
これの理由と、これを修正する方法は何ですか?
編集: getdetails.jsp のコード:
<%!
String ID;
JsonObject details = new JsonObject(); //using Google JSON Lib
%>
<%
ID=request.getParameter("id");
details.addProperty("ID",ID);
... //accessing corresponding average and count
details.addProperty("average",average);
details.addProperty("count",count);
out.println(details);
%>