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

jsp学生管理系统代码

JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许开发者在HTML或XML等静态页面中嵌入Java代码,从而实现动态内容的生成和处理。下面是一个简单的JSP学生管理系统的代码示例,包括学生信息的增删改查功能。

1. 项目结构

代码语言:txt
复制
StudentManagementSystem/
├── WEB-INF/
│   ├── classes/
│   │   └── com/
│   │       └── example/
│   │           ├── StudentServlet.java
│   │           └── StudentDAO.java
│   └── web.xml
├── index.jsp
├── addStudent.jsp
├── editStudent.jsp
└── viewStudents.jsp

2. 数据库表设计

假设我们有一个简单的学生表 students

代码语言:txt
复制
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    email VARCHAR(100)
);

3. Java类

Student.java

代码语言:txt
复制
package com.example;

public class Student {
    private int id;
    private String name;
    private int age;
    private String email;

    // Getters and Setters
}

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()) {
                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();
        }
    }
}

StudentServlet.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("/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");
    }
}

4. JSP页面

index.jsp

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

addStudent.jsp

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

editStudent.jsp

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

viewStudents.jsp

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

5. web.xml

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

优势与应用场景

  1. 优势
    • 跨平台:基于Java技术,具有良好的跨平台性。
    • 易于集成:可以方便地与现有的Java应用集成。
    • 动态内容生成:通过嵌入Java代码,可以实现动态内容的生成和处理。
    • 丰富的标签库:JSTL等标签库提供了丰富的前端标签,简化了页面开发。
  • 应用场景
    • 企业级应用:适合构建复杂的企业级Web应用。
    • 教育系统:如学生管理系统、课程管理系统等。
    • 电子商务平台:商品管理、订单处理等。

常见问题及解决方法

  1. 数据库连接问题
    • 问题:无法连接到数据库。
    • 解决方法:检查数据库URL、用户名和密码是否正确,确保数据库服务正在运行。
  • SQL注入问题
    • 问题:用户输入可能导致SQL注入攻击。
    • 解决方法:使用PreparedStatement代替Statement,避免直接拼接SQL语句。
  • 性能问题
    • 问题:系统响应慢,性能不佳。
    • 解决方法:优化SQL查询,使用缓存机制,减少数据库访问次数。

希望这个示例能帮助你理解JSP学生管理系统的基本实现和相关概念。如果有具体的问题或需要进一步的帮助,请提供详细信息。

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

相关·内容

  • python学生管理系统代码_用python写学生管理系统

    这几天开始接触了python语言,这语言相对c语言简洁了不少,语言真是一通百通,学起来还是比较轻松,在熟悉了基本语法,列表(序列),元组以及字典之后写了一个最基础简单的的学生管理系统 能完成的功能有:...学生管理系统 v1.0 1.添加学生的信息 2.删除学生的信息 3.修改学生的信息 4.查询学生的信息 5.遍历所有学生的信息 6.退出系统 学生信息中,学号是唯一的,所以进行删除...4.修改信息功能 5.查询信息以及退出界面 接下来是代码 #encoding utf=8 #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print...(" 学生管理系统 v1.0") print(" 1.添加学生的信息") print(" 2.删除学生的信息") print(" 3.修改学生的信息") print(" 4.查询学生的信息")...print(" 5.遍历所有学生的信息") print(" 6.退出系统") print( '-'*30) #定义一个列表,用来存储多个学生的信息 students=[] while True: #把功能列表进行显示给用户

    5.6K30

    python写学生信息管理系统代码_学生管理系统源码

    一、前言 相信很多小伙伴在学校期间都会被要求实现一个学生管理系统,很多是让用C语言实现,有的是要求Python。 这里通过python实现了一个学生管理系统,考试/交作业必备!...网上很多的学生管理系统版本是用列表来存储学生的,实际上这样并不是最好的实现方案。 既然学生的学号是唯一的,那我们可以直接使用字典来做,这样在查询学生是否存在的速度上会更快一些。而且更方便排序等。...学生 ---- 文章目录 一、前言 二、实现效果 三、代码特点 四、总结 ---- 二、实现效果 包含的功能(学号为唯一标识): 添加学生 修改学生信息 删除学生信息...学生 ---- 三、代码特点 ---- 上图菜单页的功能映射传递的实现方案往往更多的是下面这样: key = int(input("请选择功能(序号):...小伙伴们拿到源码后可自己进行diy,实现诸如排序、密码管理,批量操作的功能等。

    1.8K20

    Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统

    Java实现Web学生选课管理系统 一、系统介绍 1.软件环境 2.系统功能 3.数据库 二、系统展示 1.登录页面 2.学生-主页面 3.学生-查看个人信息 4.学生-选择课程...JavaWeb系统系列实现 Java+JSP实现学生图书管理系统 Java+JSP实现学生信息管理系统 Java+JSP实现用户信息管理系统 Java+Servlet+JSP实现学生成绩管理系统...Java+Swing实现仓库管理系统 Java+Swing实现考试管理系统 Java+Swing实现通讯录管理系统 Java+Swing实现停车场管理系统 Java+Swing实现学生信息管理系统...Java+Swing实现学生宿舍管理系统 Java+Swing实现学生选课管理系统 Java+Swing实现学生成绩管理系统 Java+Swing实现学校教材管理系统 Java+Swing实现学校教务管理系统...Java+JSP+Servlet+Mysql实现Web学生选课管理系统源码 3.备注 如有侵权请联系我删除。 4.鸡汤 运动使人轻松! 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    4.3K30

    用Java代码实现学生管理系统

    文章目录 学生管理系统 1.1 项目演示 1.2 学生管理系统实现思路 1.3 定义学生类 1.4 主界面的代码编写 1.5 添加学生的代码编写 1.6 查看学生代码的编写 1.7 查看学生代码的编写升级版...1.8 删除学生的代码编写 1.9 修改学生的代码编写 1.10 解决删除/修改学生学号不存在问题 1.11 解决添加学生学号重复问题 1.12 新增根据学生学号查询学生信息模块以及输入错误指令后重新输入的代码...(详情请看1.13完整代码) 1.13 完整代码 学生管理系统 1.1 项目演示 1.2 学生管理系统实现思路 定义学生类 主界面的代码编写 添加学生的代码编写 查看学生的代码编写 删除学生的的代码编写...return address; } public void setAddress(String address) { this.address = address; } } StudentManager(学生管理系统类...用输出语句完成主界面的编写 System.out.println("---------欢迎来到学生管理系统------------"); System.out.println("1 添加学生"); System.out.println

    74510

    java学生宿舍管理系统代码(java简单宿舍管理系统)

    46CE-AF9B-6B1875EA81D7/sqljdbc_6.0.8112.200_chs.exe 功能实现 分为三大类 1.land.java (登陆界面) 2.system.java (系统管理界面...) 3.sql.java (数据库操作,包括连接、断开、增删改查等操作) 一、登陆界面及代码 部分代码: 登陆按钮事件 public void actionPerformed(ActionEvent...sq.landing(name, password); if(num==1) { JOptionPane.showMessageDialog(frame, "欢迎进入学生宿舍管理系统...,"提示:",JOptionPane.ERROR_MESSAGE); } } } 二、系统管理界面及代码**(这里只添加了俩个表,多少表都是一样的道理**) 增加数据:点击增加按钮会出现一空白行...,填写完点击保存即可 保存(更新)数据:直接在表中进行相应的操作,再点击保存即可 删除数据:选择某行,点击删除按钮即可 部分代码: //---------------------------

    1.8K21

    学生老师管理系统

    表说明:  Student: studentNo:学生ID Name:学生姓名 Sex:学生性别 (1男 2女) Hostel:学生宿舍号 Groups:学生小组号 teacher: teacherNo...老师姓名 passWord:登陆密码 Sex:性别(1 男  0 女) Course: courseId:课程ID courseName:课程名称 Studentcourse: studentNo:学生...ID,与学生表中的studentNo对应 courseId:课程编号,与课程表中的courseId对应 Score:得分 Courseteacher: courseId:课程编号,与课程表中的courseId...提示登陆失败(2分) 1.2帐号密码正确,登陆成功并跳转(3分) 2.菜单和教师列表(10分) 2.1 首尾容器的内容展示正确,菜单正确,一共5分 2.2教师列表展示正确3分,授课门数统计正确2分 3.学生列表...(20分) 3.1学生ID,姓名,宿舍号,小组展示正确(2分) 3.2性别展示正确(2分) 3.3选课数展示正确(2分) 3.4平均分展示正确(4分) 3.5选课详情展示正确(5分) 3.6选课详情删除正确

    97540

    学生管理系统(springMVC)

    《Java Web编程》课程设计  学生管理系统 完成日期:   2018年12月26日   1  项目引言 1.1  项目简介        学生入校后,我们需要管理这些学生,那么就需要我们对这些学生进行很多的操作...,此时我们学校对学生有条理的管理,包括一些基本信息的记录,就方便了学生的信息管理。...1.2  使用技术        这是一个学生管理系统,应用的是SSH框架Spring+SpringMVC+Hibernate的项目, 运用的知识:        spring,springmvc...(test测试类中实现以及在jsp页面实现修改和删除) - 增删改查页面显示当前学生信息(session里获取) - 页面时间自动更新功能 - 部分前端代码 (3)项目构建     ...系统主页面: ? 1  系统实现 思路: ?

    4K150
    领券