-1

我只想使用 Ajax 在 div 通知中显示数据库中的数据,但它不起作用。我正在使用 Maven 和 Spring、Hibernate,在这段代码中我只使用 JDBC,只是为了看看它是否工作。但它没有给出任何输出。

function getNotifications() {
  var xmlHttp;
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {
    try {
      xmlHttp = new XMLHttpRequest();
    } catch (e) {
      alert("your browser cant support");
    }
  }
  xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4) {
      var x = (xmlHttp.responseText);
      document.getElementById("notifications").innerHTML = x;
      /* document.write(xmlHttp.responseText); */
    }
  }
  var url = "auto.jsp";
  url = url + "?q=" + str;
  xmlHttp.open("get", url, true);
  xmlHttp.send(url);
}        

自动.jsp

<%@ page import="java.sql.*" %>
<% String s="G";
System.out.println("helloooooooooo1111111");
String result=""; 
ArrayList li = new ArrayList();
try {
  Class.forName("com.mysql.jdbc.Driver");
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2402","root","admin");

  System.out.println("helloooooooooo1111111");
  Statement st = con.createStatement();
  String sql = "select * from message ";
  System.out.println("helloooooooooo22222266666");
  st.execute(sql);

  ResultSet rs = st.getResultSet();

  System.out.println("helloooooooooo222222");
  int i = 1;
  while(rs.next()){
    li.add(rs.getString(i));
    i = i++;
  }
}
catch(Exception ex){
  out.println(ex);
}
%>

<% 
Iterator itr = li.iterator();

while (itr.hasNext()) {
  out.println(itr.next());  
}

%>
4

1 回答 1

0

乍一看,问题似乎在两个语句中。您正在重新分配值而不是附加。
你有url变量

var url = "auto.jsp";
url = url + "?q=" + str;  

改成

var url = "auto.jsp";
url += "?q=" + str;   

auto.jsp里面

while(rs.next()){
 li.add(rs.getString(i));
 i++; //here simple i++ will work fine.
}   

编辑

不相关的:

  1. 如何避免jsp中的scriptlet
  2. java中的前置增量和后置增量
于 2013-09-20T13:16:40.643 回答