Establish a simple student management system (based on chatgpt) using JSP technology and MVC three-tier model

Table of contents

Model layer (Student.java):

Data Access Object Layer (StudentDAO.java):

View layer (add.jsp, delete.jsp, edit.jsp, list.jsp):

add.jsp:

delete.jsp

edit.jsp

list.jsp

Controller layer (addStudent.jsp, deleteStudent.jsp, editStudent.jsp, StudentController.java):

addStudent.jsp

deleteStudent.jsp

editStudent.jsp

StudentController.java


Model layer (Student.java):

public class Student {
    private int id;
    private String name;
    private String gender;
    private String birthday;
    private String major;

    public int getId() { return id; }
    public void setId(int id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public String getGender() { return gender; }
    public void setGender(String gender) { this.gender = gender; }

    public String getBirthday() { return birthday; }
    public void setBirthday(String birthday) { this.birthday = birthday; }

    public String getMajor() { return major; }
    public void setMajor(String major) { this.major = major; }
}

Data Access Object Layer (StudentDAO.java):

public class StudentDAO {
    private Connection conn;

    public StudentDAO() {
        conn = Database.getConnection();
    }

    public void addStudent(Student student) {
        try {
            PreparedStatement ps = conn.prepareStatement("INSERT INTO student(name, gender, birthday, major) VALUES (?, ?, ?, ?)");
            ps.setString(1, student.getName());
            ps.setString(2, student.getGender());
            ps.setString(3, student.getBirthday());
            ps.setString(4, student.getMajor());
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void deleteStudent(int id) {
        try {
            PreparedStatement ps = conn.prepareStatement("DELETE FROM student WHERE id=?");
            ps.setInt(1, id);
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void updateStudent(Student student) {
        try {
            PreparedStatement ps = conn.prepareStatement("UPDATE student SET name=?, gender=?, birthday=?, major=? WHERE id=?");
            ps.setString(1, student.getName());
            ps.setString(2, student.getGender());
            ps.setString(3, student.getBirthday());
            ps.setString(4, student.getMajor());
            ps.setInt(5, student.getId());
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public List<Student> getAllStudents() {
        List<Student> students = new ArrayList<Student>();
        try {
            Statement statement = conn.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM student");
            while (rs.next()) {
                Student student = new Student();
                student.setId(rs.getInt("id"));
                student.setName(rs.getString("name"));
                student.setGender(rs.getString("gender"));
                student.setBirthday(rs.getString("birthday"));
                student.setMajor(rs.getString("major"));
                students.add(student);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return students;
    }

    public Student getStudentById(int id) {
        Student student = new Student();
        try {
            PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE id=?");
            ps.setInt(1, id);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                student.setId(rs.getInt("id"));
                student.setName(rs.getString("name"));
                student.setGender(rs.getString("gender"));
                student.setBirthday(rs.getString("birthday"));
                student.setMajor(rs.getString("major"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return student;
    }
}

View layer (add.jsp, delete.jsp, edit.jsp, list.jsp):

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Add Student</title>
</head>
<body>
    <form action="addStudent.jsp" method="post">
        Name: <input type="text" name="name"><br/>
        Gender: <input type="radio" name="gender" value="Male"> Male
                <input type="radio" name="gender" value="Female"> Female<br/>
        Birthday: <input type="text" name="birthday"><br/>
        Major: <input type="text" name="major"><br/>
        <input type="submit" value="Add">
    </form>
</body>
</html>

delete.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Delete Student</title>
</head>
<body>
    <form action="deleteStudent.jsp" method="post">
        ID: <input type="text" name="id"><br/>
        <input type="submit" value="Delete">
    </form>
</body>
</html>

edit.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Edit Student</title>
</head>
<body>
    <form action="editStudent.jsp" method="post">
        ID: <input type="text" name="id"><br/>
        Name: <input type="text" name="name"><br/>
        Gender: <input type="radio" name="gender" value="Male"> Male
                <input type="radio" name="gender" value="Female"> Female<br/>
        Birthday: <input type="text" name="birthday"><br/>
        Major: <input type="text" name="major"><br/>
        <input type="submit" value="Update">
    </form>
</body>
</html>

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>List Students</title>
</head>
<body>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Gender</th>
            <th>Birthday</th>
            <th>Major</th>
            <th>Edit</th>
            <th>Delete</th>
        </tr>
        <%
            StudentDAO studentDAO = new StudentDAO();
            List<Student> students = studentDAO.getAllStudents();
            for (Student student : students) {
                out.println("<tr>");
                out.println("<td>" + student.getId() + "</td>");
                out.println("<td>" + student.getName() + "</td>");
                out.println("<td>" + student.getGender() + "</td>");
                out.println("<td>" + student.getBirthday() + "</td>");
                out.println("<td>" + student.getMajor() + "</td>");
                out.println("<td><a href='edit.jsp?id=" + student.getId() + "'>Edit</a></td>");
                out.println("<td><a href='delete.jsp?id=" + student.getId() + "'>Delete</a></td>");
                out.println("</tr>");
            }
        %>
    </table>
    <br>
    <a href="add.jsp">Add Student</a>
</body>
</html>

Controller layer (addStudent.jsp, deleteStudent.jsp, editStudent.jsp, StudentController.java):

addStudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    Student student = new Student();
    student.setName(request.getParameter("name"));
    student.setGender(request.getParameter("gender"));
    student.setBirthday(request.getParameter("birthday"));
    student.setMajor(request.getParameter("major"));

    StudentDAO studentDAO = new StudentDAO();
    studentDAO.addStudent(student);

    response.sendRedirect("list.jsp");
%>

deleteStudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    int id = Integer.parseInt(request.getParameter("id"));

    StudentDAO studentDAO = new StudentDAO();
    studentDAO.deleteStudent(id);

    response.sendRedirect("list.jsp");
%>

editStudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    Student student = new Student();
    student.setId(Integer.parseInt(request.getParameter("id")));
    student.setName(request.getParameter("name"));
    student.setGender(request.getParameter("gender"));
    student.setBirthday(request.getParameter("birthday"));
    student.setMajor(request.getParameter("major"));

    StudentDAO studentDAO = new StudentDAO();
    studentDAO.updateStudent(student);

    response.sendRedirect("list.jsp");
%>

StudentController.java

@WebServlet("/")
public class StudentController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private StudentDAO studentDAO;
    
    public void init() {
        studentDAO = new StudentDAO();
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getServletPath();
        switch (action) {
            case "/new":
                showAddForm(request, response);
                break;
            case "/insert":
                addStudent(request, response);
                break;
            case "/delete":
                deleteStudent(request, response);
                break;
            case "/edit":
                showEditForm(request, response);
                break;
            case "/update":
                updateStudent(request, response);
                break;
            default:
                listStudents(request, response);
                break;
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
    
    private void listStudents(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Student> students = studentDAO.getAllStudents();
        request.setAttribute("students", students);
        RequestDispatcher dispatcher = request.getRequestDispatcher("list.jsp");
        dispatcher.forward(request, response);
    }
    
    private void showAddForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        RequestDispatcher dispatcher = request.getRequestDispatcher("add.jsp");
        dispatcher.forward(request, response);
    }
    
    private void addStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Student student = new Student();
        student.setName(request.getParameter("name"));
        student.setGender(request.getParameter("gender"));
        student.setBirthday(request.getParameter("birthday"));
        student.setMajor(request.getParameter("major"));

        studentDAO.addStudent(student);
        response.sendRedirect("list");
    }
    
    private void deleteStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));

        studentDAO.deleteStudent(id);
        response.sendRedirect("list");
    }
    
    private void showEditForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        Student student = studentDAO.getStudentById(id);
        RequestDispatcher dispatcher = request.getRequestDispatcher("edit.jsp");
        request.setAttribute("student", student);
        dispatcher.forward(request, response);
    }
    
    private void updateStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Student student = new Student();
        student.setId(Integer.parseInt(request.getParameter("id")));
        student.setName(request.getParameter("name"));
        student.setGender(request.getParameter("gender"));
        student.setBirthday(request.getParameter("birthday"));
        student.setMajor(request.getParameter("major"));

        studentDAO.updateStudent(student);
        response.sendRedirect("list");
    }
}

Note: If you use Maven for project management, you need to add the corresponding dependency package in the pom.xml file

Guess you like

Origin blog.csdn.net/qq_72505850/article/details/130626538