Java实现Web学生选课管理系统

  • 一、系统介绍
    • 1.软件环境
    • 2.系统功能
    • 3.数据库
  • 二、系统展示
    • 1.登录页面
    • 2.学生-主页面
    • 3.学生-查看个人信息
    • 4.学生-选择课程
    • 5.学生-查看已选课程
    • 6.教师-主页面
    • 7.教师-查看个人信息
    • 8.教师-评分
    • 9.教师-查看任课信息
    • 10.管理员-主页面
    • 11.管理员-管理员功能-查看个人信息
    • 12.管理员-管理员功能-添加新的管理员
    • 13.管理员-学生功能-添加学生
    • 14.管理员-学生功能-获取所有学生
    • 15.管理员-课程功能-添加课程
    • 16.管理员-课程功能-查询课程
    • 17.管理员-教师功能-添加教师
    • 18.管理员-教师功能-获取所有教师
  • 三、部分代码
    • AdminDaoImpl.java
    • CourseDaoImpl.java
    • StudentCourseTeacherDaoImpl.java
    • StudentDaoImpl.java
    • TeacherCourseDaoImpl.javab
    • TeacherDaoImpl.java
    • addAdmin.jsp
    • addCourse.jsp
    • addStudent.jsp
    • addTeacher.jsp
  • 四、其他
    • 1.其他系统实现
      • JavaWeb系统系列实现
      • JavaSwing系统系列实现
    • 2.获取源码
    • 3.备注
    • 4.鸡汤

一、系统介绍

1.软件环境

Java:jdk1.8
Mysql:8.0.13
Tomcat:8.5.23

2.系统功能

学生
1.查看个人信息
2.选课
3.查看已选课程
教师
1.查看个人信息
2.评分
3.查看任课课程
管理员
1.管理员功能
(1).查看个人信息
(2).添加新的管理员
2.学生功能
(1).添加学生
(2).获取所有学生
3.课程功能
(1).添加课程
(2).查询课程
4.教师功能
(1).添加教师
(2)获取所有教师

3.数据库

/*Navicat Premium Data TransferSource Server         : MySQLSource Server Type    : MySQLSource Server Version : 80013Source Host           : localhost:3306Source Schema         : jsp_servlet_selectcourseTarget Server Type    : MySQLTarget Server Version : 80013File Encoding         : 65001Date: 23/06/2021 20:46:30
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for t_admin
-- ----------------------------
DROP TABLE IF EXISTS `t_admin`;
CREATE TABLE `t_admin`  (`userid` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`username` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`age` int(3) NULL DEFAULT NULL,`score` decimal(5, 1) NULL DEFAULT NULL,`introduction` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`enterdate` date NULL DEFAULT NULL,PRIMARY KEY (`userid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_admin
-- ----------------------------
INSERT INTO `t_admin` VALUES ('admin', '管理员', 'admin', 21, 100.0, '  ', '2018-06-12');
INSERT INTO `t_admin` VALUES ('admin1', '水坚石青', 'admin1', 25, 99.0, '', '2021-06-22');-- ----------------------------
-- Table structure for t_class
-- ----------------------------
DROP TABLE IF EXISTS `t_class`;
CREATE TABLE `t_class`  (`classno` int(4) NOT NULL AUTO_INCREMENT,`cname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`cteacher` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`classroom` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`classno`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1531 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_class
-- ----------------------------
INSERT INTO `t_class` VALUES (1520, '软工', '赵丽', '综阶1');
INSERT INTO `t_class` VALUES (1521, '软工', '齐兴斌', '综阶2');
INSERT INTO `t_class` VALUES (1522, '软工', '张志斌', '综阶3');
INSERT INTO `t_class` VALUES (1523, '软工', '郭小英', '综阶5');
INSERT INTO `t_class` VALUES (1524, '软工', '郭新峰', '综阶6');
INSERT INTO `t_class` VALUES (1525, '软工', '王若慧', '综阶7');
INSERT INTO `t_class` VALUES (1526, '软工', '贾春华', '综阶8');
INSERT INTO `t_class` VALUES (1527, '软工', '朱云雷', '综阶9');
INSERT INTO `t_class` VALUES (1528, '软工', '李雪梅', '综阶10');
INSERT INTO `t_class` VALUES (1529, '软工', '张举 ', '综阶11');
INSERT INTO `t_class` VALUES (1530, '软工', '米晓萍', '综阶12');
INSERT INTO `t_class` VALUES (1531, '软工', '张建英', '综阶13');-- ----------------------------
-- Table structure for t_course
-- ----------------------------
DROP TABLE IF EXISTS `t_course`;
CREATE TABLE `t_course`  (`cno` int(4) NOT NULL AUTO_INCREMENT,`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`credit` int(1) NULL DEFAULT NULL,`periodstart` date NULL DEFAULT NULL,`periodend` date NULL DEFAULT NULL,PRIMARY KEY (`cno`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1009 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_course
-- ----------------------------
INSERT INTO `t_course` VALUES (1001, '数据库', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1002, '数据结构', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1003, 'j2ee', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1004, '计算机网络', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1005, '计算机组成原理', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1007, '编译原理', 4, '2018-02-01', '2018-08-08');
INSERT INTO `t_course` VALUES (1008, 'C语言', 4, '2018-02-01', '2018-02-01');
INSERT INTO `t_course` VALUES (1009, 'c++', 4, '2018-01-02', '2018-05-28');
INSERT INTO `t_course` VALUES (1010, '1', 1, '2021-06-22', '2021-06-22');-- ----------------------------
-- Table structure for t_sc
-- ----------------------------
DROP TABLE IF EXISTS `t_sc`;
CREATE TABLE `t_sc`  (`sno` int(10) NOT NULL,`cno` int(4) NOT NULL,`tno` int(4) NOT NULL,`score` decimal(5, 2) NULL DEFAULT NULL,PRIMARY KEY (`sno`, `cno`, `tno`) USING BTREE,INDEX `t_sc_ibfk_2`(`cno`) USING BTREE,INDEX `t_sc_ibfk_3`(`tno`) USING BTREE,CONSTRAINT `t_sc_ibfk_1` FOREIGN KEY (`sno`) REFERENCES `t_student` (`sno`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `t_sc_ibfk_2` FOREIGN KEY (`cno`) REFERENCES `t_course` (`cno`) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `t_sc_ibfk_3` FOREIGN KEY (`tno`) REFERENCES `t_teacher` (`tno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_sc
-- ----------------------------
INSERT INTO `t_sc` VALUES (2015001, 1002, 1001, 100.00);
INSERT INTO `t_sc` VALUES (2015001, 1004, 1001, 99.00);
INSERT INTO `t_sc` VALUES (2015001, 1004, 1006, NULL);
INSERT INTO `t_sc` VALUES (2015001, 1005, 1002, NULL);
INSERT INTO `t_sc` VALUES (2015001, 1007, 1004, NULL);
INSERT INTO `t_sc` VALUES (2015001, 1008, 1002, NULL);
INSERT INTO `t_sc` VALUES (2015001, 1008, 1004, NULL);
INSERT INTO `t_sc` VALUES (2015001, 1008, 1005, NULL);-- ----------------------------
-- Table structure for t_student
-- ----------------------------
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student`  (`sno` int(9) NOT NULL AUTO_INCREMENT,`password` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`sname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`phone` bigint(11) NULL DEFAULT NULL,`sex` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`birthday` date NULL DEFAULT NULL,`classno` int(4) NULL DEFAULT NULL,`remark` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`sno`) USING BTREE,INDEX `t_student_ibfk_1`(`classno`) USING BTREE,CONSTRAINT `t_student_ibfk_1` FOREIGN KEY (`classno`) REFERENCES `t_class` (`classno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 2015570 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_student
-- ----------------------------
INSERT INTO `t_student` VALUES (2015001, '123456', '李四', 15788888888, '女', '2021-06-22', 1525, '优秀');
INSERT INTO `t_student` VALUES (2015002, '123456', '王茹', 15788888888, '女', '2018-05-28', 1520, '良好');
INSERT INTO `t_student` VALUES (2015003, '123456', '张三', 15788888888, '女', '2018-05-28', 1520, '良好');
INSERT INTO `t_student` VALUES (2015004, '123456', '王五', 15788888888, '女', '2018-05-28', 1520, '优秀');
INSERT INTO `t_student` VALUES (2015005, '123456', '李浩', 15788888888, '女', '2018-05-28', 1520, '合格');
INSERT INTO `t_student` VALUES (2015006, '123456', '黄县', 15788888888, '女', '2018-05-28', 1520, '良好');
INSERT INTO `t_student` VALUES (2015007, '123456', '钱一', 15788888888, '女', '2018-05-28', 1520, '优秀');
INSERT INTO `t_student` VALUES (2015009, '123456', '赵括', 15788888888, '女', '2018-05-28', 1520, '优秀');
INSERT INTO `t_student` VALUES (2015010, '123456', '赵括', 15788888888, '女', '2018-05-28', 1520, '优秀');-- ----------------------------
-- Table structure for t_tc
-- ----------------------------
DROP TABLE IF EXISTS `t_tc`;
CREATE TABLE `t_tc`  (`cno` int(4) NOT NULL,`tno` int(4) NOT NULL,PRIMARY KEY (`cno`, `tno`) USING BTREE,INDEX `t_tc_ibfk_2`(`tno`) USING BTREE,CONSTRAINT `t_tc_ibfk_1` FOREIGN KEY (`cno`) REFERENCES `t_course` (`cno`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `t_tc_ibfk_2` FOREIGN KEY (`tno`) REFERENCES `t_teacher` (`tno`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_tc
-- ----------------------------
INSERT INTO `t_tc` VALUES (1001, 1001);
INSERT INTO `t_tc` VALUES (1002, 1001);
INSERT INTO `t_tc` VALUES (1004, 1001);
INSERT INTO `t_tc` VALUES (1009, 1001);
INSERT INTO `t_tc` VALUES (1005, 1002);
INSERT INTO `t_tc` VALUES (1008, 1002);
INSERT INTO `t_tc` VALUES (1002, 1003);
INSERT INTO `t_tc` VALUES (1004, 1003);
INSERT INTO `t_tc` VALUES (1007, 1004);
INSERT INTO `t_tc` VALUES (1008, 1004);
INSERT INTO `t_tc` VALUES (1008, 1005);
INSERT INTO `t_tc` VALUES (1004, 1006);-- ----------------------------
-- Table structure for t_teacher
-- ----------------------------
DROP TABLE IF EXISTS `t_teacher`;
CREATE TABLE `t_teacher`  (`tno` int(4) NOT NULL AUTO_INCREMENT,`tname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`phone` bigint(11) NULL DEFAULT NULL,`hiredate` date NULL DEFAULT NULL,`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`tno`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1006 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of t_teacher
-- ----------------------------
INSERT INTO `t_teacher` VALUES (1001, '张志斌', '123456', 15788888888, '2017-07-20', '张老师是一个超级幽默的老师,教学认真,态度友好,有自己独有的教学方法,深得学生喜爱');
INSERT INTO `t_teacher` VALUES (1002, '白茹意', '123456', 15766666666, '2018-03-06', '白老师工作认真负责,不推卸责任');
INSERT INTO `t_teacher` VALUES (1003, '郭新峰', '123456', 15733333333, '2018-05-14', '<span style=\"font-family:Arial Black;\"><span style=\"color:#E53333;\"><span style=\"color:#E53333;\">郭老师很认真负责</span></span></span>');
INSERT INTO `t_teacher` VALUES (1004, '赵丽', '123456', 15722222222, '2018-04-03', NULL);
INSERT INTO `t_teacher` VALUES (1005, '齐兴斌', '123456', 15711111111, '2004-05-28', NULL);
INSERT INTO `t_teacher` VALUES (1006, '尹少平', '123456', 15777777777, '2014-06-11', NULL);SET FOREIGN_KEY_CHECKS = 1;

二、系统展示

1.登录页面

2.学生-主页面

3.学生-查看个人信息

4.学生-选择课程

5.学生-查看已选课程

6.教师-主页面

7.教师-查看个人信息

8.教师-评分

9.教师-查看任课信息

10.管理员-主页面

11.管理员-管理员功能-查看个人信息

12.管理员-管理员功能-添加新的管理员

13.管理员-学生功能-添加学生

14.管理员-学生功能-获取所有学生

15.管理员-课程功能-添加课程

16.管理员-课程功能-查询课程

17.管理员-教师功能-添加教师

18.管理员-教师功能-获取所有教师

三、部分代码

AdminDaoImpl.java

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.util.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.bluehonour.sscs.dao.AdminDao;
import com.bluehonour.sscs.entity.Admin;
import com.bluehonour.sscs.util.DBUtils;public class AdminDaoImpl implements AdminDao{@Overridepublic Admin find(String userId, String password) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Admin admin = null;try {//建立连接connection = DBUtils.getConnection();//向数据库发送sql命令并得到结果String sql = "select * from t_admin where userid = ? and password = ?";preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, userId);preparedStatement.setString(2, password);rs = preparedStatement.executeQuery();//处理返回结果if(rs.next()) {//取出结果集当前行各个字段的值String userName = rs.getString("username");int age = rs.getInt("age");double score = rs.getDouble("score");Date enterDate = rs.getDate("enterdate");String introduction = rs.getString("introduction");//封装成对象admin = new Admin(userId, userName, password, age, score, enterDate, introduction);}} catch (SQLException e) {e.printStackTrace();} finally {//关闭数据库资源DBUtils.closeAll(rs, preparedStatement, connection);}return admin;}@Overridepublic int save(Admin admin) {String sql = "insert into t_admin values(?,?,?,?,?,?,?)";Object[] params = {admin.getUserId(),admin.getUserName(),admin.getPassword(),admin.getAge(),admin.getScore(),admin.getIntroduction(),admin.getEnterDate()};return DBUtils.executeUpdate(sql, params);}}

CourseDaoImpl.java

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.bluehonour.sscs.dao.CourseDao;
import com.bluehonour.sscs.entity.Course;
import com.bluehonour.sscs.util.DBUtils;public class CourseDaoImpl implements CourseDao{@Overridepublic int save(Course course) {String sql = "insert into t_course (name,credit,periodstart,periodend)  values(?,?,?,?) ";Object[] params = {course.getName(), course.getCredit(), course.getPeriodstart(), course.getPeriodend()};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Course> findAll() {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Course> list = new ArrayList<Course>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_course order by cno";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行各个字段的值int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");Date periodstart = rs.getDate("periodstart");Date periodend = rs.getDate("periodend");// 封装成对象Course course = new Course(cno,name, credit, periodstart, periodend);list.add(course);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}}

StudentCourseTeacherDaoImpl.java

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.bluehonour.sscs.dao.StudentCourseTeacherDao;
import com.bluehonour.sscs.entity.Course;
import com.bluehonour.sscs.entity.StudentCourse;
import com.bluehonour.sscs.entity.Teacher;
import com.bluehonour.sscs.util.DBUtils;public class StudentCourseTeacherDaoImpl implements StudentCourseTeacherDao {@Overridepublic int save(int sno, int cno, int tno) {String sql = "insert into t_sc(sno,cno,tno) values(?,?,?)";Object[] params = {sno,cno,tno};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Course> findSelectedCourse(int sno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Course> list = new ArrayList<Course>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_course c"+ " join t_sc sc"+ " on (c.cno = sc.cno)"+ " join t_teacher t"+ " on (sc.tno = t.tno)"+ " where sno = " + sno;preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行课程各个字段的值int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");Date periodstart = rs.getDate("periodstart");Date periodend = rs.getDate("periodend");// 封装成课程对象Course course = new Course(cno,name, credit, periodstart, periodend);//取出结果集中教师各个字段的值int tno = rs.getInt("tno");String tname = rs.getString("tname");String password = rs.getString("password");long phone = rs.getLong("phone");Date hiredate = rs.getDate("hiredate");String remark = rs.getString("remark");//封装成教师对象Teacher teacher = new Teacher(tno,tname, password, phone, hiredate, remark);//将教师加入课程course.setTeacher(teacher);list.add(course);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}@Overridepublic List<Course> findSelectableCourse(int sno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Course> list = new ArrayList<Course>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "SELECT c.*, t.* FROM   t_tc a "+ "LEFT JOIN t_course c "+ "ON a.cno = c.cno "+ "LEFT JOIN t_teacher t "+ "ON a.tno = t.tno "+ "WHERE (a.cno, a.tno) NOT IN "+ "( SELECT    cno,tno "+ "FROM t_sc "+ "WHERE sno = "+ sno+") ";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行课程各个字段的值int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");Date periodstart = rs.getDate("periodstart");Date periodend = rs.getDate("periodend");// 封装成课程对象Course course = new Course(cno,name, credit, periodstart, periodend);//取出结果集中教师各个字段的值int tno = rs.getInt("tno");String tname = rs.getString("tname");String password = rs.getString("password");long phone = rs.getLong("phone");Date hiredate = rs.getDate("hiredate");String remark = rs.getString("remark");//封装成教师对象Teacher teacher = new Teacher(tno,tname, password, phone, hiredate, remark);//将教师加入课程course.setTeacher(teacher);list.add(course);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}@Overridepublic int removeStudentDistributedCourse(int sno, int cno, int tno) {String sql = "delete from t_sc where sno = ? and cno = ? and tno = ?";Object[] params = {sno,cno,tno};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<StudentCourse> getSelectedStudentAndCourse(int tno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<StudentCourse> list = new ArrayList<StudentCourse>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "SELECT" + " s.sno," + "  s.sname," + "    s.classno," + "  clazz.cname," + "    c.cno," + "  c. NAME," + "    c.credit," + "   sc.score" + " FROM" + "   t_student s" + " LEFT JOIN t_class clazz ON clazz.classno = s.classno" + " LEFT JOIN t_sc sc ON sc.sno = s.sno" + " LEFT JOIN t_course c ON c.cno = sc.cno" + " WHERE" + "    sc.tno = " + tno +" ORDER BY" + "   c.cno," + "  s.sno";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");int sno = rs.getInt("sno");int classno = rs.getInt("classno");String sname = rs.getString("sname");String cname = rs.getString("cname");double score = rs.getDouble("score");//封装成教师对象StudentCourse sc = new StudentCourse(sno, sname, classno, cname, cno, name, credit, score);list.add(sc);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}@Overridepublic int courseRemark(int sno, int cno, int tno, double score) {String sql = "update t_sc set score = ? where sno = ? and cno = ? and tno = ?";Object[] params = {score,sno,cno,tno};return DBUtils.executeUpdate(sql, params);}}

StudentDaoImpl.java

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.bluehonour.sscs.dao.StudentDao;
import com.bluehonour.sscs.entity.ClassInfo;
import com.bluehonour.sscs.entity.CriteriaStudent;
import com.bluehonour.sscs.entity.Student;
import com.bluehonour.sscs.util.DBUtils;public class StudentDaoImpl implements StudentDao {@Overridepublic int save(Student stu) {String sql = "insert into t_student(password,sname,phone,sex,birthday,classno,remark) values(?,?,?,?,?,?,?)";Object[] params = { stu.getPassword(), stu.getSname(), stu.getPhone(), stu.getSex(), stu.getBirthday(),stu.getClassno(), stu.getRemark() };return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Student> findAll() {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Student student = null;List<Student> stuList = new ArrayList<Student>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_student";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行各个字段的值int sno = rs.getInt("sno");String password = rs.getString("password");String sname = rs.getString("sname");long phone = rs.getLong("phone");String sex = rs.getString("sex");Date birthday = rs.getDate("birthday");int classno = rs.getInt("classno");String remark = rs.getString("remark");// 封装成对象student = new Student(sno,password, sname, phone, sex, birthday, classno, remark);stuList.add(student);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return stuList;}@Overridepublic int del(int sno) {String sql = "delete  from t_student where sno = ?";Object[] params = {sno };return DBUtils.executeUpdate(sql, params);}@Overridepublic Student findById(int sno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Student student = null;try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_student where sno = " + sno;preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果if (rs.next()) {// 取出结果集当前行各个字段的值String password = rs.getString("password");String sname = rs.getString("sname");long phone = rs.getLong("phone");String sex = rs.getString("sex");Date birthday = rs.getDate("birthday");int classno = rs.getInt("classno");String remark = rs.getString("remark");// 封装成对象student = new Student(sno,password, sname, phone, sex, birthday, classno, remark);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return student;}@Overridepublic int update(Student stu) {String sql = "update t_student set sname=?,password=?,phone=?,birthday=?,sex=?,classno=?,remark=? where sno=?";Object[] params = { stu.getSname(),stu.getPassword(),stu.getPhone(),stu.getBirthday(),stu.getSex(),stu.getClassno(),stu.getRemark(),stu.getSno() };return DBUtils.executeUpdate(sql, params);}@Overridepublic Student find(String sno, String password) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Student student = null;try {//建立连接connection = DBUtils.getConnection();//向数据库发送sql命令并得到结果String sql = "select * from t_student where sno = ? and password = ?";preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, sno);preparedStatement.setString(2, password);rs = preparedStatement.executeQuery();//处理返回结果if(rs.next()) {//取出结果集当前行各个字段的值String sname = rs.getString("sname");long phone = rs.getLong("phone");String sex = rs.getString("sex");Date birthday = rs.getDate("birthday");int classno = rs.getInt("classno");String remark = rs.getString("remark");//封装成对象student = new Student(Integer.parseInt(sno), password, sname, phone, sex, birthday, classno, remark);}} catch (SQLException e) {e.printStackTrace();} finally {//关闭数据库资源DBUtils.closeAll(rs, preparedStatement, connection);}return student;}@Overridepublic List<ClassInfo> getClassInfo() {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;ClassInfo clazz = null;List<ClassInfo> list = new ArrayList<ClassInfo>();try {//建立连接connection = DBUtils.getConnection();//向数据库发送sql命令并得到结果String sql = "select * from t_class";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();//处理返回结果while(rs.next()) {//取出结果集当前行各个字段的值int classno = rs.getInt("classno");String cname = rs.getString("cname");String cteacher = rs.getString("cteacher");String classroom = rs.getString("classroom");//封装成对象clazz = new ClassInfo(classno, cname, cteacher, classroom);list.add(clazz);}} catch (SQLException e) {e.printStackTrace();} finally {//关闭数据库资源DBUtils.closeAll(rs, preparedStatement, connection);}return list;}@Overridepublic List<Student> getForListWithCriteriaStudent(CriteriaStudent student) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Student> stuList = new ArrayList<Student>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果StringBuffer sql = new StringBuffer();sql.append("select * from t_student");if(!student.getSno().equals("")) {sql.append(" and sno like '%"+ student.getSno()  +"%'");}if(!student.getSname().equals("")) {sql.append(" and sname like '%"+ student.getSname() +"%'");}if(!student.getSex().equals("")) {sql.append(" and sex ='"+ student.getSex() +"'");}if(!student.getClassno().equals("")) {sql.append(" and classno like '%"+ student.getClassno() +"%'");}if(!student.getRemark().equals("")) {sql.append(" and remark='"+ student.getRemark() +"'");}String SQL = sql.toString();SQL = SQL.replaceFirst("and", "where");System.out.println(SQL);preparedStatement = connection.prepareStatement(SQL);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行各个字段的值int sno = rs.getInt("sno");String password = rs.getString("password");String sname = rs.getString("sname");long phone = rs.getLong("phone");String sex = rs.getString("sex");Date birthday = rs.getDate("birthday");int classno = rs.getInt("classno");String remark = rs.getString("remark");// 封装成对象Student stu = new Student(sno,password, sname, phone, sex, birthday, classno, remark);stuList.add(stu);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return stuList;}}

TeacherCourseDaoImpl.javab

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.bluehonour.sscs.dao.TeacherCourseDao;
import com.bluehonour.sscs.entity.Course;
import com.bluehonour.sscs.entity.Teacher;
import com.bluehonour.sscs.util.DBUtils;public class TeacherCourseDaoImpl implements TeacherCourseDao {@Overridepublic int save(int cno, int tno) {String sql = "insert into t_tc values(?,?)";Object[] params = {cno,tno};return DBUtils.executeUpdate(sql, params);}@Overridepublic int delete(int cno, int tno) {String sql = "delete from t_tc where cno = ? and tno = ?";Object[] params = {cno,tno};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Course> findAll() {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Course> list = new ArrayList<Course>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_course c"+ " join t_tc tc"+ " on (c.cno = tc.cno)"+ " join t_teacher t"+ " on (tc.tno = t.tno)"+ " order by c.cno";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行课程各个字段的值int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");Date periodstart = rs.getDate("periodstart");Date periodend = rs.getDate("periodend");// 封装成课程对象Course course = new Course(cno,name, credit, periodstart, periodend);//取出结果集中教师各个字段的值int tno = rs.getInt("tno");String tname = rs.getString("tname");String password = rs.getString("password");long phone = rs.getLong("phone");Date hiredate = rs.getDate("hiredate");String remark = rs.getString("remark");//封装成教师对象Teacher teacher = new Teacher(tno,tname, password, phone, hiredate, remark);//将教师加入课程course.setTeacher(teacher);list.add(course);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}}

TeacherDaoImpl.java

package com.bluehonour.sscs.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.bluehonour.sscs.dao.TeacherDao;
import com.bluehonour.sscs.entity.Course;
import com.bluehonour.sscs.entity.Student;
import com.bluehonour.sscs.entity.Teacher;
import com.bluehonour.sscs.util.DBUtils;public class TeacherDaoImpl implements TeacherDao {@Overridepublic int save(Teacher teacher) {String sql = "insert into t_teacher(tname,password,phone,hiredate,remark)  values(?,?,?,?,?) ";Object[] params = {teacher.getTname(),teacher.getPassword(),teacher.getPhone(),teacher.getHiredate(),teacher.getRemark()};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Teacher> findAll() {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;List<Teacher> list = new ArrayList<Teacher>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_teacher order by tno";preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行各个字段的值int tno = rs.getInt("tno");String tname = rs.getString("tname");String password = rs.getString("password");long phone = rs.getLong("phone");Date hiredate = rs.getDate("hiredate");String remark = rs.getString("remark");// 封装成对象Teacher teacher = new Teacher(tno,tname, password, phone, hiredate, remark);list.add(teacher);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}@Overridepublic int delete(int tno) {String sql = "delete  from t_teacher where tno = ?";Object[] params = {tno };return DBUtils.executeUpdate(sql, params);}@Overridepublic Teacher findById(int tno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Teacher teacher = null;try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select * from t_teacher where tno = " + tno;preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果if (rs.next()) {// 取出结果集当前行各个字段的值String tname = rs.getString("tname");String password = rs.getString("password");long phone = rs.getLong("phone");Date hiredate = rs.getDate("hiredate");String remark = rs.getString("remark");// 封装成对象teacher = new Teacher(tno, tname, password, phone, hiredate, remark);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return teacher;}@Overridepublic int update(Teacher teacher) {String sql = "update t_teacher set tname=?,password=?,phone=?,hiredate=?,remark=? where tno=?";Object[] params = {teacher.getTname(),teacher.getPassword(),teacher.getPhone(),teacher.getHiredate(),teacher.getRemark(),teacher.getTno()};return DBUtils.executeUpdate(sql, params);}@Overridepublic List<Course> getAssumeCourse(int tno) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet rs = null;Course course = null;List<Course> list = new ArrayList<>();try {// 建立连接connection = DBUtils.getConnection();// 向数据库发送sql命令并得到结果String sql = "select c.* from t_tc tc " + "LEFT JOIN t_teacher t on t.tno = tc.tno " + "LEFT JOIN t_course c on c.cno = tc.cno " + "where tc.tno = " + tno ;preparedStatement = connection.prepareStatement(sql);rs = preparedStatement.executeQuery();// 处理返回结果while (rs.next()) {// 取出结果集当前行各个字段的值int cno = rs.getInt("cno");String name = rs.getString("name");int credit = rs.getInt("credit");Date periodstart = rs.getDate("periodstart");Date periodend = rs.getDate("periodend");// 封装成对象course = new Course(cno,name, credit, periodstart, periodend);list.add(course);}} catch (SQLException e) {e.printStackTrace();} finally {DBUtils.closeAll(rs, preparedStatement, connection);}return list;}}

addAdmin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>增加管理员</title>
<link rel="stylesheet" type="text/css" href="<c:url value='/css/add.css'/>"><script type="text/javascript" src="${pageContext.request.contextPath }/My97DatePicker/WdatePicker.js"></script><script type="text/javascript"src="${pageContext.request.contextPath }/kindeditor/kindeditor-all.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/kindeditor/lang/zh_CN.js"></script><script>KindEditor.ready(function(K) {filterMode: false,//是否开启过滤模式window.editor = K.create('#introduction-id');});
</script>
</head>
<body><div class="nav"><%--   ${error }<div><img src="${pageContext.request.contextPath }/images/register_admin.jpg"></div> --%><%if(request.getAttribute("error") != null){%><div><img src="${pageContext.request.contextPath }/images/add_admin_error.jpg"></div><%} else{%><div><img src="${pageContext.request.contextPath }/images/register_admin.jpg"></div><%} %><div class="nav1"><form action="${pageContext.request.contextPath }/addAdmin.do" method="post"><p><label for="userId">管理员账号:</label> <input type="text" name="userId" id="userId""><span>请输入4-10位用户名</span></p><p><label for="userName">真实姓名:</label> <input type="text" name="userName"id="userName" value=""><span>请输入您的真实姓名</span></p><p><label for="passWord">密码:</label> <input type="password" name="passWord"id="passWord" value="" size="20px"><span>密码为6-16位</span></p><p><label for="rePassWord">确认密码:</label> <input type="password" name="rePassWord"id="rePassWord" value="" size="20px"><span>请再次输入密码</span></p><p><label for="age">年龄:</label> <input type="text" name="age" id="age" value=""><span>请输入年龄</span></p><p><label for="score">成绩:</label> <input type="text" name="score" id="score" value=""><span>请输入成绩</span></p><p><label for="enterDate">入职时间:</label> <input type="text" name="enterDate"id="enterDate" value="" onfocus="WdatePicker({highLineWeekDay:true,isShowToday:true,isShowWeek:true})"><span>请输入入职时间</span></p><p><label for="introduction">简介:</label><textarea  class="no" name="introduction" id="introduction-id"style=" width: 700px; height: 200px; visibility: hidden; display: block;"></textarea></p><button class="sub"><img src="${pageContext.request.contextPath }/images/button.gif"></button></form></div></div><script>window.onload = function(e) {var form = document.querySelector('form');var userId = document.querySelector('#userId');var userName = document.querySelector('#userName');var passWord = document.querySelector('#passWord');var rePassWord = document.querySelector('#rePassWord');var age = document.querySelector('#age');var score = document.querySelector('#score');var enterDate = document.querySelector('#enterDate');var span = document.querySelectorAll('span');//onsubmit事件form.onsubmit = function(e) {var userId = checkUserId();if (!userId) {return false;}var username = checkUserName();if (!username) {return false;}var password = checkPassWord();if (!password) {return false;}var rePassWord = checkRePassWord();if (!rePassWord) {return false;}var age = checkAge();if (!age) {return false;}var score = checkScore();if (!score) {return false;}var enterDate = checkEnterDate();if (!enterDate) {return false;}return true;};//onblur失去焦点事件userId.onblur = function(e) {checkUserId();};userName.onblur = function(e) {checkUserName();};passWord.onblur = function(e) {checkPassWord();};rePassWord.onblur = function(e) {checkRePassWord();};age.onblur = function(e) {checkAge();};score.onblur = function(e) {checkScore();};enterDate.onblur = function(e) {checkEnterDate();};//---------------------------------函数封装-------------------------------------------------------------//管理员账户(3-10位)function checkUserId(e) {if (userId.value.length == 0) {span[0].innerText = '账户不能为空';span[0].className = 'danger';return false;}var pattern = /^[A-Za-z0-9]{3,10}$/;if (!pattern.test(userId.value)) {span[0].innerText = '账户格式错误,请重新输入';span[0].className = 'danger';return false;}span[0].innerText = '管理员账户输入正确';span[0].className = 'success';return true;}//真实姓名(2-4位汉字)function checkUserName(e) {if (userName.value.length == 0) {span[1].innerText = '真实姓名不能为空';span[1].className = 'danger';return false;}var pattern = /^[\u4e00-\u9fa5]{2,4}$/;if (!pattern.test(userName.value)) {span[1].innerText = '真实姓名格式错误,请重新输入';span[1].className = 'danger';return false;}span[1].innerText = '真实姓名输入正确';span[1].className = 'success';return true;}//登录密码(6-16位)function checkPassWord(e) {if (passWord.value.length == 0) {span[2].innerText = '密码不能为空';span[2].className = 'danger';return false;}var pattern = /^[A-Za-z0-9]{6,16}$/;if (!pattern.test(passWord.value)) {span[2].innerText = '密码不符合格式,请重新输入';span[2].className = 'danger';return false;}span[2].innerText = '密码输入正确';span[2].className = 'success';return true;}//重复登录密码function checkRePassWord(e) {if (rePassWord.value.length == 0) {span[3].innerText = '重复密码不能为空';span[3].className = 'danger';return false;}if (rePassWord.value != passWord.value) {span[3].innerText = '两次输入的密码不一致,请重新输入';span[3].className = 'danger';return false;}span[3].innerText = '两次密码一致';span[3].className = 'success';return true;}//年龄(1-3位)function checkAge(e) {if (age.value.length == 0) {span[4].innerText = '年龄不能为空';span[4].className = 'danger';return false;}var pattern = /^[1-9]{1,3}$/;if (!pattern.test(age.value)) {span[4].innerText = '年龄格式错误,请重新输入';span[4].className = 'danger';return false;}span[4].innerText = '年龄输入正确';span[4].className = 'success';return true;}//成绩function checkScore(e) {if (score.value.length == 0) {span[5].innerText = '成绩不能为空';span[5].className = 'danger';return false;}/*   var pattern = /^[0-9]+\.?[0-9]*$/; */var pattern = /^[0-9]+\.?[0-9]*$/;if (!pattern.test(score.value)) {span[5].innerText = '成绩格式错误,请重新输入';span[5].className = 'danger';return false;}span[5].innerText = '成绩输入正确';span[5].className = 'success';return true;}//入职时间(格式xxxx-xx-xx)function checkEnterDate(e) {if (enterDate.value.length == 0) {span[6].innerText = '入职时间不能为空';span[6].className = 'danger';return false;}var pattern = /^[0-9]{4}\-?[0-9]{1,2}\-?[0-9]{1,2}$/;if (!pattern.test(enterDate.value)) {span[6].innerText = '时间格式:xxxx-xx-xx';span[6].className = 'danger';return false;}span[6].innerText = '时间格式正确';span[6].className = 'success';return true;}}</script>
</body>
</html>

addCourse.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加学生</title><link rel="stylesheet" type="text/css" href="<c:url value='/css/add.css'/>"><script type="text/javascript" src="${pageContext.request.contextPath }/My97DatePicker/WdatePicker.js"></script>
</head>
<body><div class="nav"><%if(request.getAttribute("error") != null){%><div><img src="${pageContext.request.contextPath }/images/add_course_error.jpg"></div><%} else{%><div><img src="${pageContext.request.contextPath }/images/register_course.jpg"></div><%} %><div class="nav1"><form action="${pageContext.request.contextPath }/addCourse.do" method="post"><p><label for="name">课程名称:</label><input type="text" id="name" name="name" value=""></p><p><label for="name">学分:</label><input type="text" id="credit" name="credit" value=""></p><p><label for="periodStart">开课日期:</label><input type="text" id="periodStart" name="periodStart" value="" onfocus="WdatePicker({highLineWeekDay:true,isShowToday:true,isShowWeek:true})"></p><p><label for="periodEnd">结课日期:</label><input type="text" id="periodEnd" name="periodEnd" value="" onfocus="WdatePicker({highLineWeekDay:true,isShowToday:true,isShowWeek:true})"></p><div align="center"><input type="submit" value="保存"  /></div><div align="center">${error }</div></form></div>
</div></body>
</html>

addStudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加学生</title><link rel="stylesheet" type="text/css" href="<c:url value='/css/add.css'/>"><script language="javascript" type="text/javascript" src="${pageContext.request.contextPath }/scripts/student.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/My97DatePicker/WdatePicker.js"></script>
</head>
<body><div class="nav"><%if(request.getAttribute("error") != null){%><div><img src="${pageContext.request.contextPath }/images/add_admin_error.jpg"></div><%} else{%><div><img src="${pageContext.request.contextPath }/images/register_student.jpg"></div><%} %><div class="nav1"><form action="${pageContext.request.contextPath }/addStudent.do" method="post"><p><label for="name">学生姓名:</label><input type="text" id="name" name="name" value=""><span>请输入学生姓名</span></p><p><label for="password">密码:</label><input type="text" id="password" name="password" value=""><span>密码为6-16位</span></p><p><label for="classno">班级:</label><select name="classno" id="classno"><option>--请选择班级--</option><c:forEach items="${classList }" var="clazz"><option>--${clazz.classno}班--</option></c:forEach></select><span style="margin-left: 100px">请输入班级</span></p><p><label>性别:</label><input type="radio" name="sex" value="男" checked="checked" >男<input type="radio" name="sex" value="女">女 </p><p><label for="tel">关联手机号:</label><input type="text" id="tel" name="tel" value=""><span>请输入手机号</span></p><p><label for="birthday">出生年月日:</label><input type="text" id="birthday" name="birthday" value="" onfocus="WdatePicker({highLineWeekDay:true,isShowToday:true,isShowWeek:true})"><span>请输入出生年月日</span></p><p><label for="remark">评论:</label><select name="remark" id="remark"><option>--请选择--</option><option>优秀</option><option>良好</option><option>合格</option><option>差劲</option></select><span style="margin-left: 100px">请对该学生进行评论</span></p><button class="sub"><img src="${pageContext.request.contextPath }/images/submit.jpg"></button><div align="center">${error }</div></form></div>
</div></body>
</html>

addTeacher.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加教师</title>
<link rel="stylesheet" type="text/css"href="<c:url value='/css/add.css'/>">
<script language="javascript" type="text/javascript"src="${pageContext.request.contextPath }/scripts/teacher.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/kindeditor/kindeditor-all.js"></script>
<script type="text/javascript"src="${pageContext.request.contextPath }/kindeditor/lang/zh_CN.js"></script>
<script>KindEditor.ready(function(K) {filterMode: false,//是否开启过滤模式window.editor = K.create('#remark-id');});
</script></head>
<body><div class="nav"><%if (request.getAttribute("error") != null) {%><div><img src="${pageContext.request.contextPath }/images/add_teacher_error.jpg"></div><%} else {%><div><img src="${pageContext.request.contextPath }/images/register_teacher.jpg"></div><%}%><div class="nav1"><form action="${pageContext.request.contextPath }/addTeacher.do"method="post"><p><label for="name">教师姓名:</label> <input type="text" id="name"name="name" value=""><span>请输入教师姓名</span></p><p><label for="password">教师密码:</label> <input type="text"id="password" name="password" value=""><span>密码为6-16位</span></p><p><label for="tel">联系方式:</label> <input type="text" id="tel"name="tel" value=""><span>请输入手机号</span></p><p><label for="hiredate">入职时间:</label> <input type="text"id="hiredate" name="hiredate" value=""onfocus="WdatePicker({highLineWeekDay:true,isShowToday:true,isShowWeek:true})"><span>请输入入职时间</span></p><p><label for="remark">评论:</label><textarea class="no" name="remark" id="remark-id"style="width: 700px; height: 200px; visibility: hidden; display: block;"></textarea></p><button class="sub"><img src="${pageContext.request.contextPath }/images/submit.jpg"></button><div align="center">${error }</div></form></div></div></body>
</html>

四、其他

1.其他系统实现

JavaWeb系统系列实现

Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统
Java+Servlet+JSP实现学生成绩管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+SSM+Easyui实现网上考试系统
Java+Springboot+H-ui实现营销管理系统
Java+Springboot+Mybatis+Bootstrap实现网上商城系统

JavaSwing系统系列实现

Java+Swing实现斗地主游戏
Java+Swing实现图书管理系统
Java+Swing实现医院管理系统
Java+Swing实现仓库管理系统
Java+Swing实现考试管理系统
Java+Swing实现通讯录管理系统
Java+Swing实现停车场管理系统
Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现学生成绩管理系统
Java+Swing实现学校教材管理系统
Java+Swing实现学校教务管理系统
Java+Swing实现企业人事管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现自助取款机(ATM)系统
Java+Swing实现超市管理系统-TXT存储信息
Java+Swing实现宠物商店管理系统-TXT存储信息

2.获取源码

点击以下链接获取源码,数据库文件在sql文件夹下面。
Java+JSP+Servlet+Mysql实现Web学生选课管理系统源码

3.备注

如有侵权请联系我删除。

4.鸡汤

运动使人轻松!

Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统相关推荐

  1. IDEA+Java+SSM+JSP+Mysql+Tomcat实现Web药品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 二.系统展示 1.登录系统 2.管理员-主页 3.管理员-人员信息管理 4.管理员-进药信息管理 5.管理员-售药信息管理 ...

  2. Java+JSP+Mysql+Tomcat实现Web用户信息管理系统

    用户信息管理系统 一.系统介绍 1.软件环境 2.系统功能 3.数据库 二.系统展示 1.登录系统 2.主页面 3.新增用户信息 4.修改用户信息 5.查询用户信息 三.部分代码 DBUtil Adm ...

  3. IDEA+Java+JSP+Mysql+Tomcat实现Web商品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.系统截图 二.系统展示 1.登录系统 2.系统主页 3.增加商品 4.修改商品 三.部分代码 AdminDaoImpl ...

  4. IDEA+Java+JSP+Mysql+Tomcat实现Web学校教材管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.系统截图 二.系统展示 1.登录系统 2.系统主页 3.新增教材 4.修改教材 三.部分代码 AdminDaoImpl ...

  5. IDEA+Java+JSP+Mysql+Tomcat实现Web教师信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.工程截图 二.系统展示 1.登录系统 2.查询教师信息 3.添加教师信息 4.修改教师信息 三.部分代码 AdminD ...

  6. 基于JAVA+Servlet+JSP+MYSQL的旅游酒店机票预订管理系统

    项目功能: 系统包括用户登录注册,查看景点,查看旅游攻略,预定酒店,预定机票,留言板留言,密码信息管理,个人信息管理,后台管理员登录,用户管理,旅游攻略管理,景点管理,酒店管理,机票管理,留言信息管理 ...

  7. IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统

    一.系统介绍 1.开发环境 开发工具:IDEA2018 JDK版本:jdk1.8 Mysql版本:8.0.13 2.技术选型 Java+Servlet+Boostrap+Jsp+Mysql 3.系统功 ...

  8. IDEA+Java+Servlet+JSP+Mysql实现Web停车场管理系统【建议收藏】

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 5.工程截图 二.系统展示 1.登录界面 2.主页面 3.系统信息管理-添加角色信息 4.系统信息管理-管理角色信息 5.系统 ...

  9. Java+JSP+Mysql+Tomcat实现Web图书管理系统

    图书管理系统 一.系统介绍 1.软件环境 2.功能模块图 3.系统功能 4.数据库表 5.工程截图 二.系统展示 1.系统注册 2.系统登录 3.找回密码 4.管理员-主页 5.管理员-用户管理主页 ...

最新文章

  1. html选择一个元素,css3选择第n个元素
  2. OpenHarmony的介绍
  3. 装饰工程预结算教程电子书_东北分公司举行工程预结算实战技能培训
  4. PHP二开 三语言( 中文、英语、马来语) 自动抢单系统源码
  5. 手动搭建latex公式渲染服务器
  6. 思科2960g端口限速配置
  7. struts原理介绍,面试
  8. 无人驾驶中UTM坐标系GPS坐标系相关知识总结
  9. 学习java之前应该先了解哪些知识?
  10. 【个人专用入门级】LAMP一键安装包
  11. hibernate四种状态
  12. 永川机器人博览会门票_14日 又到永川来看机器人哦
  13. 最终幻想X-2国际版+最终任务
  14. CAD梦想画图中“绘图工具——正多边形”
  15. 什么是数字孪生?数字孪生技术有没有真正的实用价值?
  16. [转]Windows IIS WEB服务器配置安全规范
  17. 本地Vmware_Centos虚拟与Pnet网络互联互通
  18. 已知二叉树先序序列和中序序列,求后序序列
  19. VTK:频域处理——低通滤波(理想+巴特沃斯)
  20. 4、公司融资 - 开公司创业系列文章

热门文章

  1. 论文笔记 ISCC 2019|BGP Dataset Generation and Feature Extraction for Anomaly Detection
  2. 创建多个key并使用/指定key
  3. c++day03 const修饰函数是修饰谁
  4. 直播视频流 html,html 播放rtmp流视频
  5. 计算机usb无法读取u盘启动,U盘中毒后造成U盘启动盘制作失败usb无法识别的解决办法...
  6. AnalyticDB 如何支撑数据银行超大规模低成本实时分析
  7. aardio - 修改虚表颜色带来的各种视觉效果
  8. Oracle Primavera P6软件项目进度评估与偏差控制
  9. windows下搭建h5游戏小小火影教程
  10. RSA之基于hutool的快速实现