IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统

一、系统介绍


1.开发环境


开发工具:IDEA2018


JDK版本:jdk1.8


Mysql版本:8.0.13


2.技术选型


Java+Servlet+Boostrap+Jsp+Mysql


3.系统功能


1.用户注册登录系统;


2.管理员审核用户,查看课程选课情况,开启签到,删除课程,修改密码;


3.教师创建课程,查看成员,开启签到,删除课程,修改密码;


4.学生选择课程,退选课程,修改密码;


4.数据库文件

/*
 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;


二、系统展示


1.登录系统


ba6befeb433340ee895a2445580b263d.jpg


2.注册系统


3db219516a574df581679e31a4c34d1d.jpg


3.管理员-首页


83995b55961c463799e66161b85d0806.jpg

4.管理员-管理用户


f75814f0461a4fd489b44eeacab871ed.jpg

5.管理员-管理课程


3b9e0dc69b1541729eb14aae81b5d3ca.jpg



6.管理员-修改密码


d8275db0c69d4f76acc8ec5be6b50268.jpg


7.教师-创建课程


cebbea05e5e8442bbc04a807f279a44b.jpg


8.教师-我的课程


886ea048bbee4f14814ced44aad8cdb2.jpg


9.教师-修改密码


65ba2eb3ecd9435096aeb40d5722f0fd.jpg


10.学生-加入课程


8885f681df904516b964235514a2df1d.jpg


11.学生-我的课程


25fe75d4f3234af99e54cf129eb5e477.jpg


12.学生-修改密码


9ec1eaa8403340a59800797fc575eade.jpg


三、部分代码


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>");
        }
    }
}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
157 7
|
3月前
|
存储 Java 数据库连接
java 初学者必看的系统知识结构图详解
本文详解Java知识结构图,涵盖Java语言基础、JVM原理、集合框架、并发编程、网络通信及主流框架(如Spring Boot、MyBatis),并结合学生信息管理系统实例,帮助初学者构建完整知识体系,提升实战开发能力。
96 0
|
19天前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
113 1
|
13天前
|
安全 Cloud Native Java
Java 模块化系统(JPMS)技术详解与实践指南
本文档全面介绍 Java 平台模块系统(JPMS)的核心概念、架构设计和实践应用。作为 Java 9 引入的最重要特性之一,JPMS 为 Java 应用程序提供了强大的模块化支持,解决了长期存在的 JAR 地狱问题,并改善了应用的安全性和可维护性。本文将深入探讨模块声明、模块路径、访问控制、服务绑定等核心机制,帮助开发者构建更加健壮和可维护的 Java 应用。
88 0
|
2月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
194 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
2月前
|
Java 数据库 前端开发
分享44个java系统,总有一款适合您
分享44个微信小程序,总有一款适合您
40 0
|
3月前
|
存储 Java 关系型数据库
Java Swing 开发的五星级酒店客房预订与管理系统源码
本文介绍了基于Java Swing的酒店管理系统开发方案。系统采用Java Swing构建GUI界面,结合MySQL数据库,实现预订管理、前台服务、客房管理、客户关系维护等功能模块。文章详细展示了登录界面、开房操作等核心功能的代码实现,包括数据验证和业务逻辑处理。该系统具有跨平台性,能有效提升酒店运营效率,为开发者提供GUI设计和数据库开发的实践案例。技术方案涵盖IntelliJ IDEA开发环境、Jform Designer插件辅助设计等工具链,适合中小型酒店管理需求。
149 0
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
134 3
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
145 1
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
349 0