IDEA+Java+Servlet+JSP+Mysql realizes students' course selection and sign-in system

1. System introduction

1. Development environment

Development tool: IDEA2018

JDK version: jdk1.8

Mysql version: 8.0.13

2. Technical selection

Java+Servlet+Boostrap+Jsp+Mysql

3. System function

1. User registration and login system;

2. Administrators review users, check course selection, enable sign-in, delete courses, and change passwords;

3. Teachers create courses, view members, enable sign-in, delete courses, and change passwords;

4. Students choose courses, withdraw courses, and change passwords;

4. Database file

/*
 Navicat Premium Data Transfer

 Source Server         : MYSQL
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : localhost:3306
 Source Schema         : servlet_select_course

 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001

 Date: 24/12/2021 16:58:38
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_courses
-- ----------------------------
DROP TABLE IF EXISTS `tb_courses`;
CREATE TABLE `tb_courses`  (
  `course_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `teach_id` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `day` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `is_signin` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `member_num` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`course_id`) USING BTREE,
  INDEX `C_FK`(`teach_id`) USING BTREE,
  CONSTRAINT `C_FK` FOREIGN KEY (`teach_id`) REFERENCES `tb_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 29 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_courses
-- ----------------------------
INSERT INTO `tb_courses` VALUES (27, '软件工程', '101', '星期一, 1 - 2 节', 'false', 1);
INSERT INTO `tb_courses` VALUES (28, '计算机导论', '104', '星期二, 3 - 4 节', 'false', 0);

-- ----------------------------
-- Table structure for tb_join
-- ----------------------------
DROP TABLE IF EXISTS `tb_join`;
CREATE TABLE `tb_join`  (
  `course_id` int(11) NULL DEFAULT NULL,
  `stu_id` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `checked` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_join
-- ----------------------------
INSERT INTO `tb_join` VALUES (27, '1001', 'true');
INSERT INTO `tb_join` VALUES (28, '1001', 'checking');

-- ----------------------------
-- Table structure for tb_signin
-- ----------------------------
DROP TABLE IF EXISTS `tb_signin`;
CREATE TABLE `tb_signin`  (
  `signin_id` int(11) NOT NULL AUTO_INCREMENT,
  `course_id` int(11) NULL DEFAULT NULL,
  `time` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `signin_num` int(11) NULL DEFAULT NULL,
  `end_time` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  PRIMARY KEY (`signin_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_signin
-- ----------------------------
INSERT INTO `tb_signin` VALUES (24, 27, '2021-12-20 15:15:48', 1, '2021-12-20 15:16:16');

-- ----------------------------
-- Table structure for tb_signin_stu
-- ----------------------------
DROP TABLE IF EXISTS `tb_signin_stu`;
CREATE TABLE `tb_signin_stu`  (
  `signin_id` int(11) NULL DEFAULT NULL,
  `stu_id` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `state` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_signin_stu
-- ----------------------------
INSERT INTO `tb_signin_stu` VALUES (24, '1001', 'true');

-- ----------------------------
-- Table structure for tb_users
-- ----------------------------
DROP TABLE IF EXISTS `tb_users`;
CREATE TABLE `tb_users`  (
  `user_id` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `name` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `type` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `checked` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_users
-- ----------------------------
INSERT INTO `tb_users` VALUES ('1001', '123456', '同学1', 'stu', 'true');
INSERT INTO `tb_users` VALUES ('1002', '123456', '同学2', 'stu', 'true');
INSERT INTO `tb_users` VALUES ('101', '123456', '教师1', 'teach', 'true');
INSERT INTO `tb_users` VALUES ('102', '123456', '教师2', 'teach', 'true');
INSERT INTO `tb_users` VALUES ('103', '123456', '教师3', 'teach', 'true');
INSERT INTO `tb_users` VALUES ('104', '123456', '王老师', 'teach', 'true');
INSERT INTO `tb_users` VALUES ('105', '123456', '李老师', 'teach', 'false');
INSERT INTO `tb_users` VALUES ('admin', 'admin', '管理员', 'admin', 'true');

SET FOREIGN_KEY_CHECKS = 1;

2. System display

1. Log in to the system

2. Registration system

3. Admin - Home

4. Admin - manage users

5. Admin - Manage Courses

6. Administrator - change password

7. Teacher - Create a Course

8. Teacher - My Course

9. Teacher - change password

10. Students - join a course

11. Student - My Course

12. Student - change password

3. Part of the code

CreateCourseAction

package com.sjsq.servlet;

import com.sjsq.bean.Course;
import com.sjsq.bean.User;
import com.sjsq.dao.CourseDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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.io.PrintWriter;

@WebServlet("/CreateCourseAction")
@MultipartConfig

public class CreateCourseAction extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        String courseName = req.getParameter("courseName");
        String day = req.getParameter("day");
        String courseTime = req.getParameter("courseTime");

        String Day = day + ", " + courseTime;

        User user = (User) req.getSession().getAttribute("User");
        String teach_id = user.getId();

        Course course = new Course(0, courseName, teach_id, Day, "false", 0);

        CourseDao courseDao = new CourseDao();
        int result = courseDao.Create(course);
        if (result == 0) {
            out.println("<script> alert('创建课程失败'); location='teacher_create.jsp'; </script>");
        } else if (result == 1) {
            out.println("<script> alert('创建课程成功'); location='teacher_create.jsp'; </script>");
        } else {
            out.println("<script> alert('上课时间冲突'); location='teacher_create.jsp'; </script>");
        }

    }

}


DeleteAction

package com.sjsq.servlet;

import com.sjsq.dao.CourseDao;
import com.sjsq.dao.JoinDao;
import com.sjsq.dao.UserDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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.io.PrintWriter;
import java.sql.SQLException;


@WebServlet("/DeleteAction")
@MultipartConfig

public class DeleteAction extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();


        String ope = req.getParameter("ope");
        if (ope.equals("userdel")) {
            // 删除用户

            String user_id = req.getParameter("user_id");
            UserDao userDao = new UserDao();
            if (userDao.DelUser(user_id) == 1) {
                out.println("<script> alert('删除成功'); location='toaudit.jsp'; </script>");
            } else {
                out.println("<script> alert('删除失败'); location='toaudit.jsp'; </script>");
            }

        } else if (ope.equals("useradd")) {
            // 用户审核

            String user_id = req.getParameter("user_id");
            UserDao userDao = new UserDao();
            try {
                if (userDao.Check(user_id) == 1) {
                    out.println("<script> alert('审核通过'); location='toaudit.jsp'; </script>");
                } else {
                    out.println("<script> alert('操作失败'); location='toaudit.jsp'; </script>");
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                out.println("<script> alert('操作失败'); location='toaudit.jsp'; </script>");
            }
        } else if (ope.equals("coursedel")) {
            // 课程删除

            String c = req.getParameter("course_id");
            String type = req.getParameter("type");
            int course_id = Integer.valueOf(c);

            CourseDao courseDao = new CourseDao();

            if (courseDao.DelCourse(course_id) == 1) {
                if (type.equals("admin")) {
                    out.println("<script> alert('课程删除成功'); location='show_all_courses.jsp'; </script>");
                } else {
                    out.println("<script> alert('课程删除成功'); location='my_courses.jsp'; </script>");
                }
            } else {
                if (type.equals("admin")) {
                    out.println("<script> alert('课程删除失败'); location='show_all_courses.jsp'; </script>");
                } else {
                    out.println("<script> alert('课程删除失败'); location='my_courses.jsp'; </script>");
                }
            }

        } else if (ope.equals("joindel")) {
            // 退出选课

            String c = req.getParameter("course_id");
            String user_id = req.getParameter("user_id");
            int course_id = Integer.valueOf(c);
            String from_ = req.getParameter("from_");
            JoinDao joinDao = new JoinDao();

            if (joinDao.Delete(course_id, user_id) == 1) {
                out.println("<script> alert('退出成功'); location='" + from_ + "'; </script>");
            } else {
                out.println("<script> alert('退出失败'); location='" + from_ + "'; </script>");
            }
        }


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        super.doPost(req, resp);
    }
}

LoginAction

package com.sjsq.servlet;

import com.sjsq.bean.User;
import com.sjsq.dao.UserDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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.io.PrintWriter;
import java.sql.SQLException;

@WebServlet("/LoginAction")
@MultipartConfig
public class LoginAction extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public LoginAction() {
        super();

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.sendRedirect("login.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        String user_id = req.getParameter("inputUser_id");   // 从name属性中获取
        String userPass = req.getParameter("inputPassword");

        User user = new User();
        user.setId(user_id);
        user.setPassword(userPass);

        UserDao userDao = new UserDao();
        User user2;
        try {
            user2 = userDao.Query(user);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            out.println("<script> alert('登陆失败'); location='login.jsp'; </script>");
            return;
        }

        if ((user2.getId()).equals("")) {
            // 用户不存在
            out.println("<script> alert('用户不存在'); location='login.jsp'; </script>");
        } else if (user2.getPassword().equals(userPass)) {
            // 登陆成功
            req.getSession(true).setAttribute("User", user2);

            out.println("<script> alert('登陆成功'); location='index.jsp'; </script>");
        } else {
            // 密码错误
            out.println("<script> alert('密码错误'); location='login.jsp'; </script>");
        }
    }
}


LogoutAction

package com.sjsq.servlet;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/LogoutAction")
public class LogoutAction extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public LogoutAction() {
        super();

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        HttpSession session = req.getSession(false);
        if (session == null) {
            resp.sendRedirect("login.jsp");
            return;
        }
        session.removeAttribute("User");
        resp.sendRedirect("login.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        doGet(req, resp);
    }
}


MulAction

package com.sjsq.servlet;

import com.sjsq.bean.Join;
import com.sjsq.dao.CourseDao;
import com.sjsq.dao.JoinDao;
import com.sjsq.dao.SigninDao;
import com.sjsq.dao.SigninStuDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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.io.PrintWriter;


@WebServlet("/MulAction")
@MultipartConfig

public class MulAction extends HttpServlet {
    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        String ope = req.getParameter("ope");

        if (ope.equals("joincreat")) {
            String c = req.getParameter("course_id");
            String user_id = req.getParameter("user_id");
            int course_id = Integer.valueOf(c);
            Join join = new Join(course_id, user_id, "checking");

            JoinDao joinDao = new JoinDao();

            int result = joinDao.Creat(join);
            if (result == 2) {
                out.println("<script> alert('课程已经选过'); location='show_all_courses.jsp'; </script>");
            } else if (result == 1) {
                out.println("<script> alert('加入成功'); location='show_all_courses.jsp'; </script>");
            } else {
                out.println("<script> alert('加入失败'); location='show_all_courses.jsp'; </script>");
            }

        } else if (ope.equals("joinaccept")) {
            String c = req.getParameter("course_id");
            String user_id = req.getParameter("user_id");
            int course_id = Integer.valueOf(c);
            String from_ = req.getParameter("from_");

            JoinDao joinDao = new JoinDao();

            int result = joinDao.Update(course_id, user_id, "true");

            if (result == 1) {
                out.println("<script> alert('通过成功'); location='" + from_ + "'; </script>");
            } else {
                out.println("<script> alert('通过失败'); location='" + from_ + "'; </script>");
            }

        } else if (ope.equals("signincreat")) {
            String c = req.getParameter("course_id");
            int course_id = Integer.valueOf(c);
            String from_ = req.getParameter("from_");

            SigninDao signinDao = new SigninDao();

            int result = signinDao.Creat(course_id);

            if (result == 1) {
                SigninStuDao signinStuDao = new SigninStuDao();
                CourseDao courseDao = new CourseDao();
                int signin_id = signinDao.FindLast(course_id);
                signinStuDao.Creat(signin_id, course_id);
                courseDao.Update(course_id, "true");
                out.println("<script> alert('签到已开始'); location='" + from_ + "'; </script>");
            } else {
                out.println("<script> alert('开始失败'); location='" + from_ + "'; </script>");
            }
        } else if (ope.equals("signinstop")) {
            String c = req.getParameter("course_id");
            int course_id = Integer.valueOf(c);
            String from_ = req.getParameter("from_");

            CourseDao courseDao = new CourseDao();
            int result = courseDao.Update(course_id, "false");
            if (result == 1) {
                SigninDao signinDao = new SigninDao();
                signinDao.Update(signinDao.FindLast(course_id));
                out.println("<script> alert('签到已停止'); location='" + from_ + "'; </script>");
            } else {
                out.println("<script> alert('停止失败'); location='" + from_ + "'; </script>");
            }
        } else if (ope.equals("signin")) {
            String stu_id = req.getParameter("stu_id");
            String c = req.getParameter("signin_id");
            int signin_id = Integer.valueOf(c);
            String from_ = java.net.URLDecoder.decode(req.getParameter("from_"), "UTF-8");

            SigninStuDao signinStuDao = new SigninStuDao();

            int result = signinStuDao.Update(signin_id, stu_id, "true");
            if (result == 1) {
                SigninDao signinDao = new SigninDao();
                signinDao.AddNum(signin_id);
                out.println("<script> alert('签到成功'); location='" + from_ + "'; </script>");
            } else {
                out.println("<script> alert('签到失败'); location='" + from_ + "'; </script>");
            }
        }
    }
}


RegisterAction

package com.sjsq.servlet;

import com.sjsq.bean.User;
import com.sjsq.dao.UserDao;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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.io.PrintWriter;

@WebServlet("/RegisterAction")
@MultipartConfig

public class RegisterAction extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    public RegisterAction() {

        super();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        RequestDispatcher rd = req.getRequestDispatcher("register.jsp");
        rd.forward(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        String user_id = req.getParameter("inputUser_id");
        String userPass = req.getParameter("inputPassword");
        String Confirm = req.getParameter("confirmPassword");
        String name = req.getParameter("inputName");
        String type = req.getParameter("type");
        int flag = 0;
        for (int i = 0; i < user_id.length(); i++) if (user_id.charAt(i) < '0' || user_id.charAt(i) > '9') flag++;
        if (flag != 0) {
            out.println("<script> alert('学号只能含有数字'); location='register.jsp'; </script>");
        } else if (!userPass.equals(Confirm)) {
            out.println("<script> alert('两次密码不相同'); location='register.jsp'; </script>");
        } else {

            User user = new User(user_id, userPass, name, type);
            UserDao userDao = new UserDao();
            int result = userDao.create(user);
            if (result == 1) {
                out.println("<script> alert('注册成功'); location='login.jsp'; </script>");
            } else {
                if (result == 0) out.println("<script> alert('注册失败'); location='register.jsp'; </script>");
                else out.println("<script> alert('该账号已被注册'); location='register.jsp'; </script>");
            }

        }
    }

}


UpdateUserAction

package com.sjsq.servlet;

import com.sjsq.bean.User;
import com.sjsq.dao.UserDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;


@WebServlet("/UpdateUserAction")
@MultipartConfig


public class UpdateUserAction extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter();

        String oldPass = req.getParameter("oldPassword");
        String newPass = req.getParameter("newPassword");
        String Confirm = req.getParameter("confirmPassword");

        if (!newPass.equals(Confirm)) {
            out.println("<script> alert('两次密码不相同'); location='update_user.jsp'; </script>");
        } else {

            User user = (User) req.getSession().getAttribute("User");
            if (!user.getPassword().equals(oldPass)) {
                out.println("<script> alert('原密码错误'); location='update_user.jsp'; </script>");
            } else {
                UserDao userDao = new UserDao();
                int result = 0;
                try {
                    result = userDao.Update(user.getId(), newPass);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if (result == 1) {
                    HttpSession session = req.getSession(false);
                    session.removeAttribute("User");
                    out.println("<script> alert('修改密码成功'); location='login.jsp'; </script>");
                    resp.sendRedirect("login.jsp");
                } else {
                    out.println("<script> alert('修改密码失败'); location='update_user.jsp'; </script>");
                    resp.sendRedirect("update_user.jsp");
                }
            }

        }
    }

}

4. Other

1. More systems

Java+JSP system series implementation

Java+JSP Realization of Student Book Management System

Java+JSP Realization of Student Information Management System

Java+JSP Realization of User Information Management System

Java+Servlet system series implementation

Java+Servlet+JSP Realization of Airline Booking System

Java+Servlet+JSP Realization of News Release System

Java+Servlet+JSP Student Dormitory Management System

Java+Servlet+JSP Realization of Book Management System

Java+Servlet+JSP Realization of Parking Lot Management System

Java+Servlet+JSP Realization of Housing Rental Management System

Java+Servlet+JSP Realization of Student Information Management System

Java+Servlet+JSP to realize student course selection management system

Java+Servlet+JSP realizes pet clinic management system

Java+Servlet+JSP realizes student achievement management system-1

Java+Servlet+JSP realizes student achievement management system-2

Java+SSM system series implementation

Java+SSM+JSP to realize online examination system

Java+SSM+JSP to realize pet mall system

Java+SSM+JSP Realization of Supermarket Management System

Java+SSM+JSP realizes student achievement management system

Java+SSM+JSP Realization of Student Information Management System

Java+SSM+JSP+Maven to realize online bookstore system

Java+SSM+JSP+Maven to realize school education management system

Java+SSH system series implementation

Java+SSH+JSP Realization of Online Exam System

Java+SSH+JSP Realization of Hospital Online Registration System

Java+Springboot system series implementation

Java+Springboot+H-ui+Maven to realize marketing management system

Java+Springboot+Bootstrap+Maven to realize online mall system

Java+Springboot+Bootstrap+Maven realizes scenic tourism management system

1. For more JavaWeb systems, please pay attention to the column.

https://blog.csdn.net/helongqiang/category_10020130.htmlhttps://blog.csdn.net/helongqiang/category_10020130.html

2. For more JavaSwing systems, please pay attention to the column.

https://blog.csdn.net/helongqiang/category_6229101.htmlhttps://blog.csdn.net/helongqiang/category_6229101.html

2. Source code download

sql is under the sql folder

Java+Servlet+JSP+Mysql realizes Web student course selection and sign-in system

3. Remarks

If there is any infringement, please contact me to delete it.

4. Support Bloggers

If you think this article is helpful to you, please like, follow and favorite. wish you a happy life! If you want to get other resources, you can follow the WeChat public account on the left to get it!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324153837&siteId=291194637