怎样创建一个网页students.jsp来显示学生列表?怎么在students.jsp中,使用jQeury,以Ajax技术,从后台请求学生列表,再将学生列表显示在网页中?
首先,需要创建一个名为students.jsp的网页。在该页面中,可以使用jQuery的Ajax方法来请求后台获取学生列表。
students.jsp代码示例:
<!DOCTYPE html>
<html>
<head>
<title>学生列表</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<h1>学生列表</h1>
<table id="student-table">
<thead>
<tr>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
$(document).ready(function() {
$.ajax({
url: "getStudentList.jsp", // 请求后台的地址
type: "GET", // 请求方式为GET
dataType: "json", // 返回的数据类型为json
success: function(data) { // 请求成功的回调函数
$.each(data, function(index, student) { // 遍历学生列表
var tr = $("<tr></tr>"); // 创建一个tr元素
var td1 = $("<td></td>").text(student.id); // 创建一个td元素,并设置其文本内容为学号
var td2 = $("<td></td>").text(student.name); // 创建一个td元素,并设置其文本内容为姓名
var td3 = $("<td></td>").text(student.age); // 创建一个td元素,并设置其文本内容为年龄
var td4 = $("<td></td>").text(student.gender); // 创建一个td元素,并设置其文本内容为性别
tr.append(td1, td2, td3, td4); // 将td元素添加到tr元素中
$("#student-table tbody").append(tr); // 将tr元素添加到表格中
});
},
error: function(jqXHR, textStatus, errorThrown) { // 请求失败的回调函数
console.error("请求失败:" + textStatus, errorThrown);
}
});
});
</script>
</body>
</html>
在上面的示例中,我们使用了jQuery的$.ajax()
方法来请求后台获取学生列表。其中,url
属性指定了请求的地址,type
属性指定了请求的方式为GET,dataType
属性指定了返回的数据类型为json。在请求成功的回调函数中,我们遍历学生列表,创建一个tr
元素,并将学生的信息添加到tr
元素中。最后,将tr
元素添加到表格中。如果请求失败,控制台会输出错误信息。
在后台,需要编写一个名为getStudentList.jsp的JSP页面。该页面用于处理学生列表的请求,并返回一个json格式的学生列表。
getStudentList.jsp代码示例:
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%
List<Student> studentList = new ArrayList<Student>();
studentList.add(new Student("001", "张三", 20, "男"));
studentList.add(new Student("002", "李四", 21, "女"));
studentList.add(new Student("003", "王五", 22, "男"));
studentList.add(new Student("004", "赵六", 23, "女"));
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
out.print(new com.alibaba.fastjson.JSONObject().toJSONString(studentList));
%>
在上面的示例中,我们创建了一个studentList
列表,其中包含四个学生信息。然后,将该列表转换为json格式,并通过response
对象返回给前台。需要注意的是,需要引入fastjson库来完成json的转换。
最后,将getStudentList.jsp和students.jsp放到服务器中,通过浏览器访问students.jsp页面,即可看到学生列表。
你打算把学生列表存放在哪里呢?
不知道你这个问题是否已经解决, 如果还没有解决的话:我将回答分成以下几个步骤来进行:
首先需要定义后台接口,以便能够从服务器获取学生数据。接口URL:http://www.liulongbin.top:3006/api/student,调用方式:GET。
可以使用以下代码从后台获取学生数据:
function getStudents() {
$.ajax({
url: "http://www.liulongbin.top:3006/api/student",
method: "GET",
success: function(result) {
// 在这里处理响应数据
},
error: function(xhr, status, error) {
console.error(error);
}
});
}
数据由JSON格式返回,需要对其进行解析。可以使用JSON.parse()方法将JSON字符串转换为JavaScript对象。
function getStudents() {
$.ajax({
url: "http://www.liulongbin.top:3006/api/student",
method: "GET",
success: function(result) {
var students = JSON.parse(result);
// 在这里处理解析后的数据
},
error: function(xhr, status, error) {
console.error(error);
}
});
}
使用jQuery操作DOM,将解析后的数据添加到HTML页面中。可以使用如下代码将学生列表添加到页面中:
function displayStudents(students) {
// 获取列表容器
var list = $("#students-list");
// 清空容器
list.empty();
// 遍历学生列表
for (var i = 0; i < students.length; i++) {
// 创建列表项元素
var item = $("<li>");
// 添加学生姓名到列表项
item.append(students[i].name);
// 添加学生年龄到列表项
item.append(" (" + students[i].age + ")");
// 添加列表项到列表容器
list.append(item);
}
}
function getStudents() {
$.ajax({
url: "http://www.liulongbin.top:3006/api/student",
method: "GET",
success: function(result) {
var students = JSON.parse(result);
displayStudents(students);
},
error: function(xhr, status, error) {
console.error(error);
}
});
}
完整的代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生列表</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>
<body>
<h1>学生列表</h1>
<ul id="students-list"></ul>
<script>
function displayStudents(students) {
// 获取列表容器
var list = $("#students-list");
// 清空容器
list.empty();
// 遍历学生列表
for (var i = 0; i < students.length; i++) {
// 创建列表项元素
var item = $("<li>");
// 添加学生姓名到列表项
item.append(students[i].name);
// 添加学生年龄到列表项
item.append(" (" + students[i].age + ")");
// 添加列表项到列表容器
list.append(item);
}
}
function getStudents() {
$.ajax({
url: "http://www.liulongbin.top:3006/api/student",
method: "GET",
success: function(result) {
var students = JSON.parse(result);
displayStudents(students);
},
error: function(xhr, status, error) {
console.error(error);
}
});
}
$(document).ready(function() {
getStudents(); // 在页面加载完成后自动获取学生列表
});
</script>
</body>
</html>