首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jsp学生信息管理系统代码

JSP(Java Server Pages)是一种基于Java技术的服务器端编程技术,用于创建动态网页。下面是一个简单的JSP学生信息管理系统的代码示例,包括学生的增删改查功能。

1. 数据库设计

假设我们有一个简单的学生表 students,包含以下字段:

  • id (主键)
  • name
  • age
  • gender
  • class

2. JSP页面

2.1 学生列表页面 (listStudents.jsp)

代码语言:txt
复制
<%@ 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>

2.2 添加学生页面 (addStudent.jsp)

代码语言:txt
复制
<%@ 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>

2.3 编辑学生页面 (editStudent.jsp)

代码语言:txt
复制
<%@ 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>

3. Servlet处理

3.1 列出所有学生 (ListStudentsServlet.java)

代码语言:txt
复制
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);
    }
}

3.2 添加学生 (AddStudentServlet.java)

代码语言:txt
复制
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");
    }
}

3.3 编辑学生 (EditStudentServlet.java)

代码语言:txt
复制
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");
    }
}

3.4 删除学生 (DeleteStudentServlet.java)

代码语言:txt
复制
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");
    }
}

4. DAO层

4.1 学生数据访问对象 (StudentDAO.java)

代码语言:txt
复制
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();
        }
    }
}

5. 学生实体类 (Student.java)

代码语言:txt
复制
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方法
}

6. 部署和运行

确保你的服务器(如Tomcat)已经配置好,并且数据库连接信息正确。将上述代码部署到服务器上,访问 listStudents.jsp 页面即可看到学生信息管理系统的基本功能。

注意事项

  • 数据库连接信息需要根据实际情况进行修改。
  • 生产环境中应使用连接池管理数据库连接。
  • 需要处理SQL注入等安全问题。

这个示例展示了如何使用JSP和Servlet构建一个简单的学生信息管理系统。你可以根据需求进一步扩展和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券