JavaWeb学生管理系统(2)

上一次已经完成了数据库的连接与查询,并且将查询到的数据展示在jsp页面上,今天来完成添加用户、修改信息和删除用户的功能。

首先在student.jsp页面中为“添加学生”按钮设置跳转,也可以将button标签替换为a标签

<button type="button" class="btn btn-primary" onclick="window.location.href='${pageContext.request.contextPath}/addstudent.jsp'">添加学生</button>

跳转至addstudent.jsp页面,修改form表单的action

<form class="form-horizontal" action="${pageContext.request.contextPath}/addStudentServlet">

创建AddStudentServlet类,用于处理添加学生的逻辑

@WebServlet("/addStudentServlet")
public class AddStudentServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取参数
        String studentno = request.getParameter("studentno");
        String name = request.getParameter("name");
        String classno = request.getParameter("classno");
        String major = request.getParameter("major");
        String gender = request.getParameter("gender");
        String age = request.getParameter("age");

        Student student = new Student();
        student.setStudentNo(studentno);
        student.setName(name);
        student.setClassNo(classno);
        student.setMajor(major);
        student.setGender(gender.equals("男") ? Student.MALE : Student.FEMALE);
        student.setAge(Integer.parseInt(age));

        //添加student
        StudentService studentService = new StudentServiceImpl();
        studentService.addStudent (student);

        //重定向至用户查询servlet
        response.sendRedirect(request.getContextPath() + "/studentListServlet");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

与之前查询数据类似,为StudentService接口和StudentDao接口添加新的方法

public class StudentServiceImpl implements StudentService {

    private StudentDao dao = new StudentDaoImpl();

    @Override
    public List<Student> findStudentForList() {
        return dao.findStudentForList ();
    }

    @Override
    public void addStudent(Student student) {
        dao.addStudent (student);
    }
}
public class StudentDaoImpl implements StudentDao {

    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

    @Override
    public List<Student> findStudentForList() {
        String sql = "select * from student";

        return template.query(sql, new BeanPropertyRowMapper<>(Student.class));
    }

    @Override
    public void addStudent(Student student) {
        String sql = "insert into student values (?, ?, ?, ?, ?, ?)";

        String studentNo = student.getStudentNo();
        String name = student.getName();
        String classNo = student.getClassNo();
        String major = student.getMajor();
        int gender = student.getGender();
        int age = student.getAge();

        template.update(sql, studentNo, name, classNo, major, gender, age);
    }
}

完成后可以启动Tomcat测试一下。

登录成功后点击添加学生,成功跳转到添加学生页面,并填写信息,点击添加按钮

添加成功!

接下来做修改和删除功能,为“修改”和“删除”按钮添加链接,这里要为“修改”按钮的跳转链接添加学号这个主键作为参数,因为在后面修改的时候,如果没有旧的学号,就无法在student表中查询这条信息。

<button class="btn btn-success" onclick="window.location.href='${pageContext.request.contextPath}/findStudentServlet?studentno=${student.studentNo}'">修改</button>
<button class="btn btn-danger" onclick="window.location.href='${pageContext.request.contextPath}/deleteStudentServlet?studentno=${student.studentNo}'">删除</button>

创建FindStudentServlet,先在student表中找到这条信息,然后跳转至updatestudent.jsp,在updatestudent.jsp修改信息

@WebServlet("/findStudentServlet")
public class FindStudentServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String studentno = request.getParameter("studentno");

        StudentService studentService = new StudentServiceImpl();
        Student student = studentService.findStudentByStudentNo (studentno);

        request.setAttribute("student", student);
        request.getRequestDispatcher("/updatestudent.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

与之前类似,为StudentService添加findStudentByStudentNo(String studentNo)方法,用于利用studentNo进行数据查询

具体实现方法就不写了,和前面大同小异,只写一下查询的SQL语句:

select * from student where studentno = ?

重写updatestudent.jsp,给对应的input标签添加value属性值

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>修改信息</title>

    <link href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/jquery-3.5.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>

</head>
<body>
<div style="width: 30%;margin: 20px auto">
    <h1 style="text-align: center;margin: 10px">修改信息</h1>
    <form class="form-horizontal" action="${pageContext.request.contextPath}/updateStudentServlet">

        <input type="hidden" name="oldstudentno" value="${student.studentNo}">

        <input type="hidden" name="oldstudentno" value="${requestScope.studentno}">
        <div class="form-group">
            <label for="studentno" class="col-sm-2 control-label">学号:</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="studentNo" name="studentno" value="${student.studentno}">
            </div>
        </div>
        <div class="form-group">
            <label for="name" class="col-sm-2 control-label">姓名:</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="name" name="name" value="${student.name}">
            </div>
        </div>
        <div class="form-group">
            <label for="class" class="col-sm-2 control-label">班级:</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="class" name="class" value="${student.classNo}">
            </div>
        </div>
        <div class="form-group">
            <label for="major" class="col-sm-2 control-label">专业:</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="major" name="major" value="${student.major}">
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">性别:</label>
            <div class="col-sm-10">

                <c:if test="${student.gender == 1}">
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="男" checked> 男
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="女"> 女
                    </label>
                </c:if>

                <c:if test="${student.gender == 2}">
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="男"> 男
                    </label>
                    <label class="radio-inline">
                        <input type="radio" name="gender" value="女" checked> 女
                    </label>
                </c:if>
            </div>
        </div>
        <div class="form-group">
            <label for="age" class="col-sm-2 control-label">年龄:</label>
            <div class="col-sm-10">
                <input type="number" class="form-control" id="age" name="age" value="${student.age}">
            </div>
        </div>

        <div class="form-group">
            <div style="text-align: center">
                <button type="submit" class="btn btn-primary">修改</button>
                <button type="reset" class="btn btn-info">重置</button>
            </div>
        </div>
    </form>
</div>
</body>
</html>

现在可以先测试一下是否好用,重启Tomcat,登录后点击修改

成功!原来的信息显示出来了,接下来创建UpdateStudentServlet类,用于处理修改信息的逻辑。注意updatestudent.jsp的form表单中有一个type类型为hidden的input,存放了修改前的学号,用于后面的信息查找。

@WebServlet("/updateStudentServlet")
public class UpdateStudentServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String oldStudentNo = request.getParameter("oldstudentno");
        String studentno = request.getParameter("studentno");
        String name = request.getParameter("name");
        String classNo = request.getParameter("class");
        String major = request.getParameter("major");
        String gender = request.getParameter("gender");
        String age = request.getParameter("age");

        Student student = new Student();
        student.setStudentNo(studentno);
        student.setName(name);
        student.setClassNo(classNo);
        student.setMajor(major);
        student.setGender(gender.equals("男") ? 1 : 2);
        student.setAge(Integer.parseInt(age));

        StudentService studentService = new StudentServiceImpl();
        studentService.updateStudent (student, oldStudentNo);
        
        response.sendRedirect(request.getContextPath() + "/studentListServlet");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

还是与之前类似,为StudentService接口添加新方法updateStudent(Student student, String oldStudentNo);

这里就不写了,只写一下最后的SQL语句:

update student set studentno = ?, name = ?, classno = ?, major = ?, gender = ?, age = ? where studentno = ?

现在可以重启Tomcat测试一下

修改信息,点击修改按钮

成功!

添加和修改的功能都已经实现了,接下来做删除功能。

第一步先修改删除按钮的链接地址,刚才已经做过了,接着创建DeleteStudentServlet类,处理删除逻辑

@WebServlet("/deleteStudentServlet")
public class DeleteStudentServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String studentno = request.getParameter("studentno");

        StudentService studentService = new StudentServiceImpl();
        studentService.deleteStudentByStudentNo (studentno);

        response.sendRedirect(request.getContextPath() + "/studentListServlet");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

又双叒和之前一样,为StudentService接口添加新方法,这里还是只写SQL语句:

delete from student where studentno = ?

迫不及待的测试一下,把章鱼哥删掉

成功!章鱼哥消失了。

这次就先做到这,下次再接着做剩下的功能。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、项目简介 本项目是一套基于JavaWeb学生成绩管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后台框架:JSP、Servlet、JDBC ​数据库:MySQL 开发环境:JDK、Eclipse、Tomcat 三、系统功能学生成绩管理系统采用B/S结构,使用JAVA开发语言,结合JSP技术,以MySQL作为后台数据库。 该系统共包含三种角色:学生、教师、管理员。 系统功能主要分为七大模块: (1)学生基本信息管理 该模块主要是存储学生的个人信息,如姓名、年龄、电话、班级、专业、考试成绩等,并实现按不同条件对这些数据进行查询的功能。 (2)教师基本信息管理 该模块主要是对老师的个人信息进行存储和索引,如姓名、年龄、婚姻状态、课程、工作时间等,并实现按不同条件对这些数据进行查询的功能。 (3)班级信息管理 该模块主要是对每个班级的基本信息进行有效管理,包括学生个数、学生信息、班干部信息、教师信息等。 (4)课程信息管理 该模块主要存储所有的课程信息,教师、学生等可以根据使用查询自己的课程信息。 (5)成绩信息管理 该模块主要实现对每一次成绩进行管理,成绩信息导入、统计、汇总。 (6)系统设置 该模块主要实现对操作员及操作员密码进行有效管理、学生和教师信息相关功能进行管理。 (7)考勤管理 该模块主要实现学生上课考勤、教师上课考勤的管理,并有相关的考勤统计信息展示。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值