私は配列を返すサーブレットに対してajax POSTを行っています。呼び出しはonchangeイベントでトリガーされます。初めて私は正しいデータを受け取ります。しかし、それ以降、データは積み重なっていきます。変更イベントごとに結果がポストします
たとえば、最初にonchangeイベントが発生し、受信された配列に正しい[10,11]が含まれています。
2回目のオンイベントが発生しますが、受け取った配列に[10,12,13]が含まれている必要があります。 Thir changeイベントはさらに長いデータセットになります。
私はキャッシュで試しました:偽と同じ結果。ご意見をお聞かせください。
$('#drivername1').on('change', function() {
$.post("statChartServlet", {driverName : this.value}, function(responseText) {
alert(responseText); //this is the array data that keeps increasing
});
});
右ここサーブレット
private ArrayList<String> tempArr = new ArrayList<String>();
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String driverName = request.getParameter("driverName");
Connection conn = null;
try{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
conn = DriverManager.getConnection(dbURL, dbUser, dbPass);
Statement statement = conn.createStatement();
ResultSet resultset =
statement.executeQuery("select racename from race WHERE drivername = '" + driverName + "'");
while(resultset.next()) {
tempArr.add(resultset.getString(1));
}
}catch (Exception e){
e.printStackTrace();
}
//response section
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
String[] strArr = tempArr.toArray(new String[tempArr.size()]);
PrintWriter out = response.getWriter();
out.write(Arrays.toString(strArr));
}
処理側は何ですか?技術的な問題ではなく、むしろサーバー処理のコードバグ –
@ H.B上記のServletのバックエンドをJavaで追加しました。 – JasSy