JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许开发者在HTML或XML等静态页面中嵌入Java代码,从而实现动态内容的生成和处理。下面是一个简单的JSP学生管理系统的代码示例,包括学生信息的增删改查功能。
StudentManagementSystem/
├── WEB-INF/
│ ├── classes/
│ │ └── com/
│ │ └── example/
│ │ ├── StudentServlet.java
│ │ └── StudentDAO.java
│ └── web.xml
├── index.jsp
├── addStudent.jsp
├── editStudent.jsp
└── viewStudents.jsp
假设我们有一个简单的学生表 students
:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT,
email VARCHAR(100)
);
package com.example;
public class Student {
private int id;
private String name;
private int age;
private String email;
// Getters and Setters
}
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()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
student.setEmail(rs.getString("email"));
students.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public void addStudent(Student student) {
try (Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement("INSERT INTO students(name, age, email) VALUES(?, ?, ?)")) {
ps.setString(1, student.getName());
ps.setInt(2, student.getAge());
ps.setString(3, student.getEmail());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateStudent(Student student) {
try (Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement("UPDATE students SET name=?, age=?, email=? WHERE id=?")) {
ps.setString(1, student.getName());
ps.setInt(2, student.getAge());
ps.setString(3, student.getEmail());
ps.setInt(4, student.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteStudent(int id) {
try (Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement("DELETE FROM students WHERE id=?")) {
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
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("/students")
public class StudentServlet extends HttpServlet {
private StudentDAO studentDAO = new StudentDAO();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if (action == null) {
action = "view";
}
switch (action) {
case "view":
List<Student> students = studentDAO.getAllStudents();
request.setAttribute("students", students);
request.getRequestDispatcher("viewStudents.jsp").forward(request, response);
break;
case "add":
request.getRequestDispatcher("addStudent.jsp").forward(request, response);
break;
case "edit":
int id = Integer.parseInt(request.getParameter("id"));
// Fetch student details and forward to edit page
break;
case "delete":
int studentId = Integer.parseInt(request.getParameter("id"));
studentDAO.deleteStudent(studentId);
response.sendRedirect(request.getContextPath() + "/students");
break;
default:
response.sendRedirect(request.getContextPath() + "/students");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
Student student = new Student();
student.setName(name);
student.setAge(age);
student.setEmail(email);
if (request.getParameter("id") == null) {
studentDAO.addStudent(student);
} else {
student.setId(Integer.parseInt(request.getParameter("id")));
studentDAO.updateStudent(student);
}
response.sendRedirect(request.getContextPath() + "/students");
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Student Management System</title>
</head>
<body>
<h1>Student Management System</h1>
<a href="students?action=add">Add Student</a>
<a href="students">View Students</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Add Student</title>
</head>
<body>
<h1>Add Student</h1>
<form action="students" method="post">
Name: <input type="text" name="name"><br>
Age: <input type="text" name="age"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Add Student">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Edit Student</title>
</head>
<body>
<h1>Edit Student</h1>
<!-- Fetch student details and populate the form -->
<form action="students" method="post">
<input type="hidden" name="id" value="${student.id}">
Name: <input type="text" name="name" value="${student.name}"><br>
Age: <input type="text" name="age" value="${student.age}"><br>
Email: <input type="text" name="email" value="${student.email}"><br>
<input type="submit" value="Update Student">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>View Students</title>
</head>
<body>
<h1>View Students</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Email</th>
<th>Actions</th>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>${student.email}</td>
<td>
<a href="students?action=edit&id=${student.id}">Edit</a>
<a href="students?action=delete&id=${student.id}">Delete</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>StudentServlet</servlet-name>
<servlet-class>com.example.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentServlet</servlet-name>
<url-pattern>/students</url-pattern>
</servlet-mapping>
</web-app>
希望这个示例能帮助你理解JSP学生管理系统的基本实现和相关概念。如果有具体的问题或需要进一步的帮助,请提供详细信息。
领取专属 10元无门槛券
手把手带您无忧上云