【问题标题】:Ajax+JSP is not working [closed]Ajax + JSP 不工作 [关闭]
【发布时间】:2013-09-20 11:29:30
【问题描述】:

我只想使用 Ajax 在 div 通知中显示我的数据库中的数据 但它不起作用。我正在使用 Maven 和 Spring, 休眠,在这段代码中我只使用 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);
}        

auto.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());  
}

%>

【问题讨论】:

  • “不起作用”并不是错误描述。
  • 错误意味着当我警告它这个脚本时它不会在块中显示消息 if(xmlHttp.readyState==4){ var x = (xmlHttp.responseText); document.getElementById("通知").innerHTML= x; /* document.write(xmlHttp.responseText); */ }
  • 我第一次使用 ajax,所以我不知道它是如何工作的,但我知道这段代码可能已经足够了
  • @kryger:库/框架/API 名称,如“Maven”、“Spring”和“Hibernate”不是代码。请不要在建议的编辑中将它们格式化为代码!

标签: javascript ajax jsp


【解决方案1】:

乍一看问题似乎在两个语句中。您正在重新分配值而不是追加。
你有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. how to avoid scriptlets in jsp
  2. preincrement and postincrement in java

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 2013-08-04
    • 2018-10-04
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多