var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var responseJSON = JSON.parse(xhr.responseText); var studentInfoElement = document.getElementById("studentInfo"); studentInfoElement.innerHTML = ""; for (var i = 0; i上述代码首先创建了一个XMLHttpRequest对象,然后定义了一个回调函数,该函数在异步请求的状态发生变化时被调用。当readyState为4(表示请求已完成)且status为200(表示请求成功)时,我们从服务器端返回的JSON数据中解析出学生信息,并将其展示在网页上。 接下来,我们需要在servlet端编写相应的代码来查询数据库中的学生信息,并将其以JSON格式返回给前端。在这个例子中,我们使用Java的JDBC来连接数据库,并使用ResultSet来获取结果集。然后,将结果集中的数据封装成一个ArrayList,并将其转换为JSON格式,最后将其返回给前端。示例代码如下:
姓名:" + student.name + ",年龄:" + student.age + ",成绩:" + student.score + "
"; } } }; xhr.open("GET","StudentServlet",true); xhr.send();
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 连接数据库 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","password"); // 查询学生信息 stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM student"); // 处理结果集 List在这段servlet代码中,我们首先建立数据库连接,然后执行查询语句获取结果集,接着将结果集中的数据封装成一个包含学生对象的ArrayList。最后,使用Gson库将ArrayList转换为JSON格式,并将其返回给前端。 通过以上的示例,我们可以看到使用ajax从servlet读取数据库的过程。通过使用XMLHttpRequest对象,我们可以向servlet发送异步请求,从数据库中获取数据并将其展示在网页上。在servlet端,我们使用JDBC连接数据库,并将结果集中的数据封装成JSON格式返回给前端。这种方式使得我们可以实时获取最新的数据库信息,并将其展示在网页上,提升用户体验。students = new ArrayList(); while (rs.next()) { Student student = new Student(); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); student.setScore(rs.getFloat("score")); students.add(student); } // 转换为JSON格式并返回给前端 response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); out.print(new Gson().toJson(students)); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。