Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统(下)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Java+Servlet+JSP+Mysql+Tomcat实现Web学生选课管理系统

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 {
  @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

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

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

<%@ 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存储信息


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
存储 消息中间件 缓存
构建互联网高性能WEB系统经验总结
构建互联网高性能WEB系统经验总结
|
23天前
|
机器学习/深度学习 数据处理 数据库
基于Django的深度学习视频分类Web系统
基于Django的深度学习视频分类Web系统
49 4
基于Django的深度学习视频分类Web系统
|
4天前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
27 2
|
23天前
|
机器学习/深度学习 监控 数据挖掘
基于Django和百度飞桨模型的情感识别Web系统
基于Django和百度飞桨模型的情感识别Web系统
31 5
|
24天前
|
Java 应用服务中间件 Spring
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
20 0
|
2月前
|
网络协议 Windows
[收藏]优化基于Win 2000系统的Web服务器性能
[收藏]优化基于Win 2000系统的Web服务器性能
|
3月前
|
API 数据库 开发者
解锁Web2py新境界!揭秘如何利用神秘插件系统,让你的Web项目瞬间起飞?
【8月更文挑战第31天】Web2py是一款轻量级且功能全面的Python Web框架,其插件系统允许开发者在不修改核心代码的情况下扩展框架功能,提升项目灵活性和可扩展性。本文介绍如何利用Web2py插件系统增强Web项目,包括插件的优势、选择与安装方法,并通过集成身份认证插件的具体示例展示其应用过程。通过合理利用插件,可以显著提高开发效率和用户体验。
46 1
|
3月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
31 1
|
3月前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
144 1
|
3月前
|
前端开发 开发者 容器
【Web布局的革命】探索CSS Grid栅格系统,打造未来网页设计!
【8月更文挑战第25天】在网页设计领域,布局至关重要。传统的布局方法难以满足复杂需求,CSS Grid 栅格系统因此诞生。它是一种二维布局模式,能直接控制行和列,简化复杂网格的设计。通过定义 `display: grid;` 创建网格容器,并利用 `grid-template-columns` 和 `grid-template-rows` 设置行列尺寸,轻松实现响应式布局。此外,CSS Grid 支持高级功能,如网格区域划分和对齐设置,极大提升了布局的灵活性和创意空间。随着浏览器兼容性的增强,CSS Grid 必将成为未来网页设计的关键技术之一。
62 1