java - 每次更改事件后发布结果都会增加

标签 java jquery ajax

我正在向 servlet 发送 ajax POST,它返回一个数组。该调用是在 onchange 事件上触发的。我第一次收到正确的数据。但从那时起,数据不断增加。

例如,第一次 onchange 事件发生时,收到的数组包含 [10,11],这是正确的。

第二次发生 onchange 事件,但收到的数组包含 [10,11,12,13],而它本来应该是 [12,13]。第三个更改事件将是更长的数据集。

我尝试使用缓存:错误和相同的结果。请指教。

$('#drivername1').on('change', function() {
    $.post("statChartServlet", {driverName : this.value},  function(responseText) {
        alert(responseText); //this is the array data that keeps increasing
    });
}); 

Servlet

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));
    }

最佳答案

这行就在这里private ArrayList<String> tempArr = new ArrayList<String>();

它在请求之间持续存在。放进去doPost 。理想情况下,Servlet 应该是无状态的,以防止出现此类错误。

关于java - 每次更改事件后发布结果都会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213474/

相关文章:

java - java中如何使用secp256r1椭圆曲线 key 对进行加解密?

javascript - 将子href的点击功能绑定(bind)到父div

javascript - javascript字符串自动换行,匹配另一个字符串

php - Ajax 关联数组

javascript - 在html表格中打印json

java - 从 Java Date 对象中去除时间的最有效方法是什么?

java - for 循环上的不同增量取决于 boolean 值

jquery - jQuery 有自己的 Ajax 支持吗?

jquery - 在 WordPress 中使用 ajax 下载文件

java - Java 8 升级后无法获得数据库连接