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.数据库
代码语言:javascript复制/* Navicat Premium Data Transfer Source Server : MySQL Source Server Type : MySQL Source Server Version : 80013 Source Host : localhost:3306 Source Schema : jsp_servlet_selectcourse Target Server Type : MySQL Target Server Version : 80013 File Encoding : 65001 Date: 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
代码语言:javascript复制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{
@Override
public 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;
}
@Override
public 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
代码语言:javascript复制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{
@Override
public 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);
}
@Override
public 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
代码语言:javascript复制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 {
@Override
public 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);
}
@Override
public 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;
}
@Override
public 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;
}
@Override
public 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);
}
@Override
public 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;
}
@Override
public 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
代码语言:javascript复制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 {
@Override
public 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);
}
@Override
public 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;
}
@Override
public int del(int sno) {
String sql = "delete from t_student where sno = ?";
Object[] params = {
sno };
return DBUtils.executeUpdate(sql, params);
}
@Override
public 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;
}
@Override
public 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);
}
@Override
public 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;
}
@Override
public 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;
}
@Override
public 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
代码语言:javascript复制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 {
@Override
public int save(int cno, int tno) {
String sql = "insert into t_tc values(?,?)";
Object[] params = {
cno,tno};
return DBUtils.executeUpdate(sql, params);
}
@Override
public 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);
}
@Override
public 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
代码语言:javascript复制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 {
@Override
public 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);
}
@Override
public 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;
}
@Override
public int delete(int tno) {
String sql = "delete from t_teacher where tno = ?";
Object[] params = {
tno };
return DBUtils.executeUpdate(sql, params);
}
@Override
public 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;
}
@Override
public 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);
}
@Override
public 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
代码语言:javascript复制<%@ 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
代码语言:javascript复制<%@ 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
代码语言:javascript复制<%@ 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
代码语言:javascript复制<%@ 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.鸡汤
运动使人轻松!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181430.html原文链接:https://javaforall.cn