一、系统介绍
1.开发环境
开发工具:IDEA
JDK版本:jdk1.8
Mysql版本:8.0.13
2.技术选型
Java+Servlet+Boostrap+Jsp+Mysql
3.系统功能
1.用户注册登录系统;
2.管理员审核用户,查看课程选课情况,开启签到,删除课程,修改密码;
3.教师创建课程,查看成员,开启签到,删除课程,修改密码;
4.学生选择课程,退选课程,修改密码;
4.数据库文件
/*Navicat Premium Data TransferSource Server : MYSQLSource Server Type : MySQLSource Server Version : 80013Source Host : localhost:3306Source Schema : servlet_select_courseTarget Server Type : MySQLTarget Server Version : 80013File Encoding : 65001Date: 24/12/ 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, '-12-20 15:15:48', 1, '-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.登录系统
2.注册系统
3.管理员-首页
4.管理员-管理用户
5.管理员-管理课程
6.管理员-修改密码
7.教师-创建课程
8.教师-我的课程
9.教师-修改密码
10.学生-加入课程
11.学生-我的课程
12.学生-修改密码
三、部分代码
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")@MultipartConfigpublic class CreateCourseAction extends HttpServlet {/****/private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doGet(req, resp);}@Overrideprotected 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")@MultipartConfigpublic class DeleteAction extends HttpServlet {/****/private static final long serialVersionUID = 1L;@Overrideprotected 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 blocke.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>");}}}@Overrideprotected 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")@MultipartConfigpublic class LoginAction extends HttpServlet {private static final long serialVersionUID = 1L;public LoginAction() {super();}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {resp.sendRedirect("login.jsp");}@Overrideprotected 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 blocke.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();}@Overrideprotected 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");}@Overrideprotected 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")@MultipartConfigpublic class MulAction extends HttpServlet {/****/private static final long serialVersionUID = 1L;@Overrideprotected 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_ = .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")@MultipartConfigpublic class RegisterAction extends HttpServlet {/****/private static final long serialVersionUID = 1L;public RegisterAction() {super();}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");RequestDispatcher rd = req.getRequestDispatcher("register.jsp");rd.forward(req, resp);}@Overrideprotected 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")@MultipartConfigpublic class UpdateUserAction extends HttpServlet {/****/private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doGet(req, resp);}@Overrideprotected 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 blocke.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");}}}}}
四、其他
1.更多系统
Java+JSP系统系列实现
Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统
Java+Servlet系统系列实现
Java+Servlet+JSP实现航空订票系统
Java+Servlet+JSP实现新闻发布系统
Java+Servlet+JSP学生宿舍管理系统
Java+Servlet+JSP实现图书管理系统
Java+Servlet+JSP实现停车场管理系统
Java+Servlet+JSP实现房屋租赁管理系统
Java+Servlet+JSP实现学生信息管理系统
Java+Servlet+JSP实现学生选课管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+Servlet+JSP实现学生成绩管理系统-1
Java+Servlet+JSP实现学生成绩管理系统-2
Java+SSM系统系列实现
Java+SSM+JSP实现网上考试系统
Java+SSM+JSP实现宠物商城系统
Java+SSM+JSP实现超市管理系统
Java+SSM+JSP实现学生成绩管理系统
Java+SSM+JSP实现学生信息管理系统
Java+SSM+JSP+Maven实现网上书城系统
Java+SSM+JSP+Maven实现学校教务管理系统
Java+SSH系统系列实现
Java+SSH+JSP实现在线考试系统
Java+SSH+JSP实现医院在线挂号系统
Java+Springboot系统系列实现
Java+Springboot+H-ui+Maven实现营销管理系统
Java+Springboot+Bootstrap+Maven实现网上商城系统
Java+Springboot+Bootstrap+Maven实现景区旅游管理系统
1.更多JavaWeb系统请关注专栏。
/helongqiang/category_1000.html/helongqiang/category_1000.html
2.更多JavaSwing系统请关注专栏。
/helongqiang/category_6229101.html/helongqiang/category_6229101.html
2.源码下载
sql在sql文件夹下面
Java+Servlet+JSP+Mysql实现Web学生选课签到系统
3.备注
如有侵权请联系我删除。
4.支持博主
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!想要获取其他资源可关注左侧微信公众号获取!