JSP(Java Server Pages)是一种基于Java技术的服务器端编程技术,用于创建动态网页。下面是一个简单的JSP学生信息管理系统的代码示例,包括学生的增删改查功能。
假设我们有一个简单的学生表 students
,包含以下字段:
id
(主键)name
age
gender
class
listStudents.jsp
)<%@ page import="java.util.List" %>
<%@ page import="com.example.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>学生信息管理系统</title>
</head>
<body>
<h1>学生列表</h1>
<a href="addStudent.jsp">添加学生</a>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>班级</th>
<th>操作</th>
</tr>
<% List<Student> students = (List<Student>) request.getAttribute("students");
if (students != null) {
for (Student student : students) { %>
<tr>
<td><%= student.getId() %></td>
<td><%= student.getName() %></td>
<td><%= student.getAge() %></td>
<td><%= student.getGender() %></td>
<td><%= student.getClassName() %></td>
<td>
<a href="editStudent.jsp?id=<%= student.getId() %>">编辑</a>
<a href="deleteStudent?id=<%= student.getId() %>">删除</a>
</td>
</tr>
<% }
} %>
</table>
</body>
</html>
addStudent.jsp
)<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加学生</title>
</head>
<body>
<h1>添加学生</h1>
<form action="addStudent" method="post">
姓名: <input type="text" name="name"><br>
年龄: <input type="text" name="age"><br>
性别: <input type="text" name="gender"><br>
班级: <input type="text" name="className"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
editStudent.jsp
)<%@ page import="com.example.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑学生</title>
</head>
<body>
<h1>编辑学生</h1>
<%
int id = Integer.parseInt(request.getParameter("id"));
Student student = (Student) request.getAttribute("student");
%>
<form action="editStudent" method="post">
<input type="hidden" name="id" value="<%= student.getId() %>">
姓名: <input type="text" name="name" value="<%= student.getName() %>"><br>
年龄: <input type="text" name="age" value="<%= student.getAge() %>"><br>
性别: <input type="text" name="gender" value="<%= student.getGender() %>"><br>
班级: <input type="text" name="className" value="<%= student.getClassName() %>"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
ListStudentsServlet.java
)package com.example;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/listStudents")
public class ListStudentsServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StudentDAO studentDAO = new StudentDAO();
List<Student> students = studentDAO.getAllStudents();
request.setAttribute("students", students);
request.getRequestDispatcher("listStudents.jsp").forward(request, response);
}
}
AddStudentServlet.java
)package com.example;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/addStudent")
public class AddStudentServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String className = request.getParameter("className");
Student student = new Student(name, age, gender, className);
StudentDAO studentDAO = new StudentDAO();
studentDAO.addStudent(student);
response.sendRedirect("listStudents");
}
}
EditStudentServlet.java
)package com.example;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/editStudent")
public class EditStudentServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String className = request.getParameter("className");
Student student = new Student(id, name, age, gender, className);
StudentDAO studentDAO = new StudentDAO();
studentDAO.updateStudent(student);
response.sendRedirect("listStudents");
}
}
DeleteStudentServlet.java
)package com.example;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/deleteStudent")
public class DeleteStudentServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
StudentDAO studentDAO = new StudentDAO();
studentDAO.deleteStudent(id);
response.sendRedirect("listStudents");
}
}
StudentDAO.java
)package com.example;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentDAO {
private Connection getConnection() throws SQLException {
// 这里应该使用连接池获取数据库连接
return DriverManager.getConnection("jdbc:mysql://localhost:3306/studentdb", "root", "password");
}
public List<Student> getAllStudents() {
List<Student> students = new ArrayList<>();
try (Connection conn = getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM students")) {
while (rs.next()) {
students.add(new Student(rs.getInt("id"), rs.getString("name"), rs.getInt("age"),
rs.getString("gender"), rs.getString("class")));
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public void addStudent(Student student) {
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO students(name, age, gender, class) VALUES (?, ?, ?, ?)")) {
pstmt.setString(1, student.getName());
pstmt.setInt(2, student.getAge());
pstmt.setString(3, student.getGender());
pstmt.setString(4, student.getClassName());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateStudent(Student student) {
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("UPDATE students SET name=?, age=?, gender=?, class=? WHERE id=?")) {
pstmt.setString(1, student.getName());
pstmt.setInt(2, student.getAge());
pstmt.setString(3, student.getGender());
pstmt.setString(4, student.getClassName());
pstmt.setInt(5, student.getId());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteStudent(int id) {
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement("DELETE FROM students WHERE id=?")) {
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Student.java
)package com.example;
public class Student {
private int id;
private String name;
private int age;
private String gender;
private String className;
// 构造函数、getter和setter方法
public Student() {
}
public Student(int id, String name, int age, String gender, String className) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.className = className;
}
// 省略getter和setter方法
}
确保你的服务器(如Tomcat)已经配置好,并且数据库连接信息正确。将上述代码部署到服务器上,访问 listStudents.jsp
页面即可看到学生信息管理系统的基本功能。
这个示例展示了如何使用JSP和Servlet构建一个简单的学生信息管理系统。你可以根据需求进一步扩展和优化。
云+社区沙龙online第6期[开源之道]
实战低代码公开课直播专栏
《民航智见》线上会议
《民航智见》线上会议
腾讯云培训认证中心开放日
DB TALK 技术分享会
实战低代码公开课直播专栏
领取专属 10元无门槛券
手把手带您无忧上云