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 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/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.登录系统
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")
@MultipartConfig
public 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_ = 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")
@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系统请关注专栏。
https://blog.csdn.net/helongqiang/category_10020130.htmlhttps://blog.csdn.net/helongqiang/category_10020130.html
2.更多JavaSwing系统请关注专栏。
https://blog.csdn.net/helongqiang/category_6229101.htmlhttps://blog.csdn.net/helongqiang/category_6229101.html
2.源码下载
sql在sql文件夹下面
Java+Servlet+JSP+Mysql实现Web学生选课签到系统
3.备注
如有侵权请联系我删除。
4.支持博主
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!想要获取其他资源可关注左侧微信公众号获取!
IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统相关推荐
- 基于JAVA+Servlet+JSP+MYSQL的学生选课系统
项目功能: <学生选课系统>,本系统有三种角色,分别为管理员.老师.学生.每种角色可以登录系统,操作的功能也不一样.总体功能模块如下: 个人信息管理 学生信息管理 课程排名 学生成绩分析 ...
- 基于JAVA+Servlet+JSP+MYSQL的学生选课管理系统
项目功能: 系统分为管理员.老师和学生三个角色,管理员登录后可以对用户进行管理(管理员管理.学生管理.教师管理),课程管理(分配课程.修改课程.搜索课程),浏览新闻,退出登录.学生登录后可以进行选课, ...
- 基于JAVA+Servlet+JSP+MYSQL的学生宿舍卫生评分系统
项目功能: 登录模块 宿舍管理 宿舍评分 学生查询 个人信息 学生管理 退出系统 页面效果:
- 基于JAVA+Servlet+JSP+MYSQL的学生卡消费统计管理系统
项目简介:主要记录学生的消费情况,统计消费水平,图表展示出消费水平. 项目技术:jsp,servlet 运行环境:jdk1.8,tomcat7.0,mysql 功能演示:
- 基于JAVA+Servlet+JSP+MYSQL的学生信息管理系统
项目功能: 系统包括管理员登录,查看学生列表,添加学生,查看学生信息,修改学生,删除学生,退出登录 页面效果:
- 基于JAVA+Servlet+JSP+MYSQL的图书馆座位预约系统
项目介绍: 学生端: 登录注册 查看自习室 预约自习室 收藏自习室 我的预定 我的收藏 图书馆资讯 系统概要 在线留言 退出登录 管理员端: 系统登录 系统用户管理 图书馆资讯管理 系统简介设置 留言 ...
- 基于JAVA+Servlet+JSP+MYSQL的教师教学评价系统
项目功能: 系统开发的总体目标是校.系督导及学生实现教学评价,教师实现查看评价信息,管理员实现信息管理.系统功能分析是在用户需求的基础上完成的. 1.学生的需求 A1:学生登录功能:学生的信息包括姓名 ...
- 基于JAVA+Servlet+JSP+MYSQL的企业员工投票系统
项目功能: 系统用户管理(管理员,普通员工),部门管理,员工管理,工资管理,考勤管理,投票管理.用户数据权限隔离,普通员工只能看自己相关的记录. 页面效果:
- 基于JAVA+Servlet+JSP+MYSQL的读者荐购系统
项目功能: 系统包括用户登录注册,修改密码,用户荐购,查看推荐列表,查看详情,支持回帖 页面效果:
最新文章
- 在多变环境中长期定位和建图的通用框架
- C语言第一次博客作业
- jq 给节点node加事件_JavaScript 原生对象、属性、方法、事件、事件参数
- t检验自由度的意义_T检验、F检验和统计学意义
- java 实现真正的随机数_关于java:SecureRandom的Android实现是否产生真正的随机数?...
- 【guava】GuavaCache缓存失效的时候做一些操作 RemovalListener
- learn go ifelse
- insert_text
- 使用JMX监控Zookeeper状态Java API
- OFDM专题之多径效应引起的码间串扰问题
- ASCII码与16进制转换表
- 【最短路 搜索】JZOJ_4246 san
- 敏捷开发?敏捷管理?什么是敏捷?(一)
- Github上的开源项目5
- BLE_BQB Test_Intermodulation Performance, uncoded data at 1 Ms/s_RF-PHY/RCV/BV-05-C
- bandwagon支付宝支付教程
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
- 相忘江湖不如相濡以沫(Ⅰ)
- 英特尔AVX指令集解析
- MATLAB 制作抖音同款 立体人物文字海报