或66 2023-06-12 14:21 采纳率: 83.3%
浏览 27
已结题

利用Ajax获取并显示学生列表二

要求:创建一个网页students.jsp,用于显示学生列表;在students.jsp中,使用jQeury,以Ajax技术,从后台请求学生列表,再将学生列表显示在网页中。
后台从Mariadb中读取学生列表;后台借助GSON库将List转换为Json字符串,返回给前端; 前端将Json字符串转换为数组,用for循环取出每一条,并构建网页元素显示。
表名:student,字段:id,name,age,addess.
具体的操作步骤和各个步骤的运行图是怎么样的?

  • 写回答

1条回答 默认 最新

  • 亚历山大的爱 2023-06-12 15:20
    关注

    由于这是一个涉及到服务器端和客户端(浏览器)的操作,所以需要一些特定的环境和工具来完成这个任务。以下是可能需要完成此任务的步骤:

    1. 设置Web开发环境
      首先,您需要安装一个Java Web开发环境,例如Eclipse、IntelliJ IDEA等。

    然后,您需要安装Tomcat服务器,并在您的IDE中配置它作为Web服务器。

    接下来,您需要安装并配置MariaDB数据库,并且创建一个名为student的表格

    1. 创建students.jsp文件
      在您的IDE中,新建一个JSP页面命名为students.jsp。这个页面将会被后台程序访问,并且用于向浏览器返回学生列表。

    2. 编写JavaScript代码
      使用jQuery库以及Ajax技术从后台请求学生列表,然后将它们显示在网页中。

    javascript

    $(document).ready(function() {
        $.ajax({
            url: "StudentListServlet",
            dataType: 'json',
            success: function(data) {
                var students = JSON.parse(data);
                for (var i = 0; i < students.length; i++) {
                    var student = students[i];
                    $("#studentList").append("<tr><td>" + student.id + "</td><td>" + student.name + "</td><td>" + student.age + "</td><td>" + student.address + "</td></tr>");
                }
            },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log(textStatus, errorThrown);
            }
        });
    });
    
    
    1. 编写Java Servlet代码
      在您的IDE中,新建一个Java Servlet命名为StudentListServlet。这个Servlet将会被students.jsp页面发出Ajax请求并返回学生列表。

    java

    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import com.google.gson.Gson;
    import java.sql.*;
    
    public class StudentListServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            List<Student> students = new ArrayList<Student>();
            Connection conn = null;
            String sql;
            try {
                Class.forName("org.mariadb.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/test", "root", "");
                sql = "SELECT * FROM student";
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    int age = rs.getInt("age");
                    String address = rs.getString("address");
                    Student student = new Student(id, name, age, address);
                    students.add(student);
                }
                Gson gson = new Gson();
                String json = gson.toJson(students);
                response.setContentType("application/json");
                PrintWriter out = response.getWriter();
                out.print(json);
                out.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    conn.close();
                } catch (Exception e) {}
            }
        }
    }
    
    class Student {
        int id;
        String name;
        int age;
        String address;
    
        public Student(int id, String name, int age, String address) {
            this.id = id;
            this.name = name;
            this.age = age;
            this.address = address;
        }
    }
    
    
    1. 运行并测试
      将students.jsp和StudentListServlet部署到Tomcat服务器中
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 已采纳回答 6月15日
  • 创建了问题 6月12日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?