乐趣区

JavaWeb学生选课ServletJSPJDBC

运行结果:

数据库的 2 个表:
course 表

student 表

ps:一定要 build path 导入数据库用的 jar 包,以及在在 lib 文件夹中导入数据库 jar 包

文件目录结构:

具体代码:
index.jsp 首页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 欢迎进入选课系统 </title>
</head>
<body>
<center>
<h2> 欢迎进入选课 系统 </h2>
<a href="login.jsp"> 学生登录 </a>
<a href="regist.jsp"> 学生注册 </a>
<a href="admin.jsp"> 管理员登录 </a>
</center>
</body>
</html>

login.jsp 学生登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 学生登录 </title>
</head>
 
<body style="text-align: center;">
      <br><br>
      <h3> 学生登录 </h3>
      <form action="LoginServlet" method="post">
          学号:<input type="text" name="stuno">
          <br><br>
          密码:<input type="password" name="stupassowrd">
          <br><br>
          <input type="submit" value="登录" name="submit">
          <a href="regist.jsp" role="button"> 注册 </a>
          <a href="index.jsp"> 返回 </a>
      </form>
 </body>
</html>

regist.jsp 学生注册

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 注册 </title>
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<h2 align=center> 注册页面 </h2>
    <center>
      
          <form action="RegisterServlet" method="post" >  
              <table  border="1">
                  <tr>
                      <td> 学号:</td>
                      <td><input name="userNo"></td>
                  </tr>
                  <tr>
                      <td> 姓名:</td>
                      <td><input name="userName"></td>
                  </tr>
                  <tr>
                      <td> 密码:</td>
                      <td><input name="password" type="password"></td>
                  </tr>
                  
                  <tr>
                      <td> 院系:</td>
                      <td><input name="major"></td>
                  </tr>
                  <tr>
                      <td> 年级:</td>
                      <td><input name="grade"></td>
                  </tr>
                  <tr>
                      <td> 班级:</td>
                      <td><input name="sclass"></td>
                  </tr>
                  <tr align="center">
                      <td colspan="2"><input type="submit" value="提交注册"><input type = "reset" value = "重置"></td>
                  </tr>
              </table>
          </form>
          
          您有账号?<a href="login.jsp"><front color="GREEN" > 点击直接登录 </front></a>
      </center>    

</body>
</html>

studentIndex.jsp 学生选课主页

  <!-- JSTL1.1 的声明是:-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page contentType="text/html; ISO-8859-1" language="java" import="java.util.*" pageEncoding="utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title> 学生选课 </title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
  <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <!--<link rel="stylesheet" type="text/css" href="pages/css/studentIndex.css">  -->  
    
    <script type="text/javascript" src="href/jquery-3.4.0.js"></script>
    <script type="text/javascript">
        // 选择课程
        $(document).ready(function() {$("input[name='select']").click(function(){var node = $(this);
                    // 获取剩余量
                  // 通过 td 里面的元素获得 tr, 使用 tr 的 children(“td”)方法获取所有的 td,在通过 eq(1) 拿第二个 td
                    var remainNum = $(this).parent().parent().children("td").eq(1).html();
                    console.log(remainNum);
                    if (!(remainNum == "0")) {
                        $.ajax({
                            url:"http://localhost:8080/xxmtest6/RemainAddServlet",    // 请求的 url 地址
                            dataType:"json",    // 返回格式为 json
                            async:true,    // 请求是否异步,默认为异步,这也是 ajax 重要特性
                            data:{"id":$(this).attr("id")},    // 参数值
                            type:"POST",    // 请求方式
                            beforeSend:function(){// 请求前的处理},
                            success:function(req){
                                // 请求成功时处理
                                //node.parent().parent().remove();
                                node.parent().parent().children("td").eq(1).html(parseInt(remainNum)-parseInt(1));
                                alert("已选中!");
                                document.getElementById("stuInfoIframe").contentWindow.location.reload(true);
                            },
                            complete:function(){
                                // 请求完成的处理
                                //alert("请求完成!");
                            },
                            error:function(){
                                // 请求出错处理
                                alert("重复选择!");
                            }
                        });
                    } else {alert("此课程人数已满!");
                    }
                });
            });
    </script>
  </head>
  
  <body>
  <header><a style="flow :right" href="index.jsp"> 退出登录 </a></header>
      <h3> 学生选课界面 </h3>
      <form action="SearchServlet" method="post">
          查找:<input type="text" name="search" value=<%=request.getParameter("search") == null?"":request.getParameter("search")%> >
          <input type="submit" value="搜索" name="ok" />
      </form>
      <br><br>
    <table class="table">
        <tr>
            <td> 课程名称 </td>
            <td> 剩余量 </td>
            <td> 总数量 </td>
            <td> 任课教师 </td>
            <td> 课程地点 </td>
            <td> 课程时间 </td>
            <td> 课程时长 </td>
            <td> 操作 </td>
        </tr>
        
        <c:forEach items="${courseList}" var="courseList">
        <tr>
            <td>${courseList.courseName}</td>
            <td>${courseList.courseRemain}</td>
            <td>${courseList.courseTotal}</td>
            <td>${courseList.courseTeacher}</td>
            <td>${courseList.coursePlace}</td>
            <td>${courseList.courseTime}</td>
            <td>${courseList.courseTimelength}</td>
            <td>
                <input type="button" value="选中" name="select" id="${courseList.courseId}"/>
            </td>
        </tr>
        </c:forEach>
    </table>
    
    <br><br>
    <hr>
    <br><br>
    <h2> 我的选课 </h2>
    <frameset>
        <iframe style="width: 80%;" id="stuInfoIframe" src="StudentInfoServlets"></iframe>
    </frameset>
  </body>
</html>

studentInfo.jsp 学生已选的课程展示

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page contentType="text/html; ISO-8859-1" language="java" import="java.util.*" pageEncoding="utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title> 学生课程 </title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
     <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script type="text/javascript" src="href/jquery-3.4.0.js"></script>
    <script type="text/javascript">
    // 学生课程
    $(document).ready(function() {
            $.ajax({
                url:"http://localhost:8080/xxmtest6/StudentInfoServlets",    // 请求的 url 地址
                //dataType:"text",   // 返回格式
                async:true,// 请求是否异步,默认为异步,这也是 ajax 重要特性
                data:{ },    // 参数值, 发送个服务端的数据
                type:"GET",   // 请求方式
                beforeSend:function(){// 请求前的处理},
                success:function(req){
                    // 请求成功时处理
                    //alert("学生课程显示成功!");
                },
                complete:function(){
                    // 请求完成的处理
                    //alert("请求完成!");
                },
                error:function(){
                    // 请求出错处理
                    //alert("学生课程显示失败!");
                }
            });
        });
    
        // 取消课程
        $(document).ready(function() {$("input[name='cancel']").click(function(){var node = $(this);
                    var nodeId = $(this).attr("id");
                    var remainNum = $("#"+nodeId, window.parent.document).parent().parent().children("td").eq(1).html();
                    
                    $.ajax({
                        url:"http://localhost:8080/xxmtest6/CancelServlet",    // 请求的 url 地址
                        dataType:"json",   // 返回格式为 json
                        async:true,// 请求是否异步,默认为异步,这也是 ajax 重要特性
                        data:{"id":$(this).attr("id")},    // 参数值
                        type:"POST",   // 请求方式
                        beforeSend:function(){// 请求前的处理},
                        success:function(req){
                            // 请求成功时处理
                               /* var iframe = window.parent;
                            var div =iframe.document.getElementById(nodeId);
                            alert(div.length); */
                            node.parent().parent().remove();
                             $("#"+nodeId, window.parent.document).parent().parent().children("td").eq(1).html(parseInt(remainNum)+parseInt("1"));
                             alert("取消成功!");
                            //window.location.reload();},
                        complete:function(){
                            // 请求完成的处理
                            //alert("请求完成!");
                        },
                        error:function(){
                            // 请求出错处理
                            alert("取消失败!");
                        }
                    });
                });
            });
    </script>
  </head>
  
  <body>
      <table class="table">
        <tr>
            <td> 课程名称 </td>
            <td> 任课教师 </td>
            <td> 课程地点 </td>
            <td> 课程时间 </td>
            <td> 课程时长 </td>
            <td> 操作 </td>
        </tr>
        
        <c:forEach items="${studentCourseList}" var="studentCourseList">
        <tr>
            <td>${studentCourseList.courseName}</td>
            <td>${studentCourseList.courseTeacher}</td>
            <td>${studentCourseList.coursePlace}</td>
            <td>${studentCourseList.courseTime}</td>
            <td>${studentCourseList.courseTimelength}</td>
            <td>
                <input type="button" value="取消" name="cancel" id="${studentCourseList.courseId}" />
            </td>
        </tr>
        </c:forEach>
    </table>
  </body>
</html>

admin.jsp 管理员登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 管理员登录 </title>
</head>
<body style="text-align: center;">
      <br><br>
      <h3> 管理员登录 </h3>
      <%
          String error = (String)session.getAttribute("error");
      if(error!=null&&error.length()!=0){out.println(error);
      }
          
      %>
      <form action="checkadmin.jsp" method="post">
          账号:<input type="text" name="adno">
          <br><br>
          密码:<input type="password" name="adpassowrd">
          <br><br>
          <input type="submit" value="登录" name="submit">
           <a href="index.jsp"> 返回 </a>
      </form>
 </body>
</html>

adminCourse.jsp 管理课程页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  

<script type="text/javascript" src="href/jquery-3.4.0.js"></script>

<title> 课程后台管理 </title>
</head>
<body>
<header><a href="index.jsp"> 退出登录 </a></header>

    <div id="app">

        <!-- 标题 -->
        <div class="jumbotron jumbotron-fluid py-3">
            <div class="container">
                <h1 class="display-3"> 选课后台管理 </h1>
                <p class="lead"></p>
            </div>
        </div>
         <!-- 主体 -->
        <div class="container-fluid">
            <div class="row">
            <form action="CreateCourseServlet">
                <div class="col-lg-14 col-sm-12">
                    <!-- 输入表单 -->
                    
                    <div class="card">
                        <div class="card-body">
                            <h4 class="card-title" style="color:blue"> 添加课程 </h4>
                            <!-- 输入框 -->
                            <div class="form-group">
                              <label for=""> 课程名字 </label>
                              <input type="text" 
                                class="form-control form-control-lg"
                                
                                name="cName">
                            </div>
                            <div class="form-group">
                              <label for=""> 任课老师 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                
                                name="cTeacher">
                            </div>
                            <div class="form-group">
                              <label for=""> 上课地点 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                
                                name="cPlace">
                                 
                                  </div>
                                <div class="form-group">
                              <label for=""> 上课时间 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                
                                name="cTime">
                            </div>
                            <div class="form-group">
                              <label for=""> 课时 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                
                                name="cLong">
                            </div>
                            <div class="form-group">
                              <label for=""> 上课总人数 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                
                                name="cTotal">
                            </div>
                            <div class="form-group">
                              <label for=""> 剩余可选数 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                name="cRemain">
                            </div>
                              
                            </div>

                            <!-- 按钮 -->
                            <input type="submit" class="btn btn-primary btn-lg btn-block" value="创建">
                     </div>
                     </div>   
                    
                </form>
                
                
                <div class="col-lg-8 col-sm-12">
                    <!-- 表格 -->
                    <table class="table text-center">
                        <thead>
                            <tr class="text-center">
                                <th> 编号 </th>
                                <th style="width: 12%"> 课程名 </th>
                                <th> 任课老师 </th>
                                <th> 上课地点 </th>
                                <th style="width: 25%"> 上课时间 </th>
                                <th style="width: 7%"> 课时 </th>
                                <th style="width: 7%"> 总人数 </th>
                                <th > 剩余数 </th>
                                <th style="width: 18%" > 操作 </th>
                            </tr>
                        </thead>
                        
         <c:forEach items="${courseList}" var="courseList">
        <tr>
            <td>${courseList.courseId}</td>
            <td>${courseList.courseName}</td>
            
            <td>${courseList.courseTeacher}</td>
            <td>${courseList.coursePlace}</td>
            <td>${courseList.courseTime}</td>
            
            <td>${courseList.courseTimelength}</td>
            
            <td>${courseList.courseTotal}</td>
            <td>${courseList.courseRemain}</td>
            <td >
                  <div class="row">
                                        <div class="col-lg-6 col-sm-12" >
                                            <button type="button"  class="btn btn-primary" data-toggle="modal" data-target="#edit1${courseList.courseId}"> 编辑 </button>
                                            <!-- 对话框 5.2 -->

                                            
                                            <!-- Modal 模态对话框 -->
                                            <div class="modal fade" id="edit1${courseList.courseId}" tabindex="-1" role="dialog" aria-labelledby="modelTitleId" aria-hidden="true">
                                                <div class="modal-dialog" role="document">
                                                    <div class="modal-content">
                                                        <div class="modal-header">
                                                            <h5 class="modal-title"> 编辑 </h5>
                                                                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                                                    <span aria-hidden="true">&times;</span>
                                                                </button>
                                                        </div>
                                                        <div class="modal-body">
                                <!-- 开始编辑 -->
                                <form action="AdminCourseServlet" name="edit" method="post">
                                <div class="form-group">
                                    <!-- 课程号作为 id,不显示,根据 id 进行修改 -->
                                    <input type="hidden" class="form-control" name="newNo" id="newNo"
                                      aria-describedby="helpId" value="${courseList.courseId}">
                                  </div>
                                 <div class="form-group">
                              <label for=""> 课程名字 </label>
                              <input type="text" 
                                class="form-control form-control-lg"
                                value="${courseList.courseName}"
                                name="ccName">
                            </div>
                            <div class="form-group">
                              <label for=""> 任课老师 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.courseTeacher}"
                                name="ccTeacher">
                            </div>
                            <div class="form-group">
                              <label for=""> 上课地点 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.coursePlace}"
                                name="ccPlace">
                                 
                                  </div>
                                <div class="form-group">
                              <label for=""> 上课时间 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.courseTime}"
                                name="ccTime">
                            </div>
                            <div class="form-group">
                              <label for=""> 课时 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.courseTimelength}"
                                name="ccLong">
                            </div>
                            <div class="form-group">
                              <label for=""> 上课总人数 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.courseTotal}"
                                name="ccTotal">
                            </div>
                            <div class="form-group">
                              <label for=""> 剩余可选数 </label>
                              <input type="text"
                                class="form-control form-control-lg"
                                value="${courseList.courseRemain}"
                                name="ccRemain">
                            </div>
                                              
                              <div class="modal-footer">
                                                            <button type="button" class="btn btn-secondary" data-dismiss="modal"> 关闭 </button>
                                                            <input type="submit"  class="btn btn-primary" value="修改">
                                                        </div>
                             </form>
                                                    
                                                    </div>
                                                </div>
                                            </div>
                                            
                                        </div>
                                        
                                        <div class="col-lg-6 col-sm-12" >
                                        <form action="CancelCourse">
                                            
                                            <input type="submit"  class="btn btn-danger" value="删除">
                                        <input type="hidden" class="form-control" name="newNo" id="newNo"
                                      aria-describedby="helpId" value="${courseList.courseId}">
                                        </form>
                                        </div>
                                    </div>   
            </td>         
        </tr>
        </c:forEach>
                  
                    </table>
        </div>
            </div>
        </div>
</div>


  <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

checkadmin.jsp 检查管理员账号密码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>check</title>
</head>
<body>
<% String adno=request.getParameter("adno");
          String adpassword = request.getParameter("adpassowrd");
          if(adno==null||adno.length()==0||adpassword==null ||adpassword.length()==0){request.getSession().setAttribute("error", "账号或密码错误");
              response.sendRedirect("admin.jsp");
          }else{if(!adno.equals("admin")||!adpassword.equals("admin")){request.getSession().setAttribute("error", "账号或密码错误");
                  response.sendRedirect("admin.jsp");
              }else{request.getSession().setAttribute("error", "");
                  response.sendRedirect("/xxmtest6/FindCourseServlet");
              }
          }
          %>
</body>
</html>

bean
Student.java 学生实体

package xxm.bean;

/**
 * 学生实体类
 * @author xxm
 *
 */
public class Student {

    String no;
    String name;
    String passwd;
    String major;
    String grade;
    String sclass;
    String selectedCourse;
    
    
    public Student() {}

    
    
    public String getSelectedCourse() {return selectedCourse;}



    public void setSelectedCourse(String cid) {this.selectedCourse = cid;}



    public String getNo() {return no;}

    public void setNo(String no) {this.no = no;}

    public String getName() {return name;}

    public void setName(String name) {this.name = name;}

    public String getPasswd() {return passwd;}

    public void setPasswd(String passwd) {this.passwd = passwd;}

    public String getMajor() {return major;}

    public void setMajor(String major) {this.major = major;}

    public String getGrade() {return grade;}

    public void setGrade(String grade) {this.grade = grade;}

    public String getSclass() {return sclass;}

    public void setSclass(String sclass) {this.sclass = sclass;}

    
}

Course.java 课程实体类

package xxm.bean;

/**
 * 课程
 * 
 * @author xxm
 *
 */
public class Course {

    int courseId;
    String courseName;
    int courseRemain;
    int courseTotal;
    String courseTeacher;
    String coursePlace;
    String courseTime;
    String courseTimelength;
    
    public Course() {}

    public int getCourseId() {return courseId;}

    public void setCourseId(int courseId) {this.courseId = courseId;}

    public String getCourseName() {return courseName;}

    public void setCourseName(String courseName) {this.courseName = courseName;}

    public int getCourseRemain() {return courseRemain;}

    public void setCourseRemain(int courseRemain) {this.courseRemain = courseRemain;}

    public int getCourseTotal() {return courseTotal;}

    public void setCourseTotal(int courseTotal) {this.courseTotal = courseTotal;}

    public String getCourseTeacher() {return courseTeacher;}

    public void setCourseTeacher(String courseTeacher) {this.courseTeacher = courseTeacher;}

    public String getCoursePlace() {return coursePlace;}

    public void setCoursePlace(String coursePlace) {this.coursePlace = coursePlace;}

    public String getCourseTime() {return courseTime;}

    public void setCourseTime(String courseTime) {this.courseTime = courseTime;}

    public String getCourseTimelength() {return courseTimelength;}

    public void setCourseTimelength(String courseTimelength) {this.courseTimelength = courseTimelength;}
    
    
    
}

数据库操作
DBO
DBOper.java

package xxm.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import xxm.bean.Student;
import xxm.dao.StudentDao;


public class DBOper {

  // 驱动
      private    static String driver = "com.mysql.cj.jdbc.Driver";
      //database 名,选择我要用的数据库 shiyan6
      private    static String url = "jdbc:mysql://localhost:3306/shiyan6?serverTimezone=UTC";
      // 验证用户名和密码
      private    static String    username = "root";
      private    static String  passwd= "123456";
      // 数据库的连接对象
      private static Connection conn = null;
      //Statement 对象
      private static  PreparedStatement ps = null;
       ResultSet rs = null;
       
      /**
       * 连接数据库
       * @return
       * @throws SQLException
       */
      public   Connection getConnection() throws SQLException {
          try {Class.forName(driver);
              conn = DriverManager.getConnection(url,username,passwd);// 连接数据库
          } catch (ClassNotFoundException e) {System.err.println("无法连接数据库!");
          }// 加载驱动
          return conn;        
      }

    // 执行 sql 语句,可以进行查询
    public ResultSet executeQuery(String preparedSql,String []param){
        try{ps = conn.prepareStatement(preparedSql);
            if(param != null){for (int i = 0; i < param.length; i++) {ps.setString(i + 1, param[i]);
                }
            }
            rs = ps.executeQuery();}catch(SQLException e){e.printStackTrace();
        }       
        return rs;

    }
    // 执行 sql 语句,增加,修改,删除
    public int executeUpdate(String preparedSql,String[]param){
        int num = 0;
        try{ps = conn.prepareStatement(preparedSql);
            if(ps != null){for (int i = 0; i < param.length; i++) {ps.setString(i + 1, param[i]);
                }
            }
            num = ps.executeUpdate();}catch(SQLException e){e.printStackTrace();
        }
        return num;
    }
    
    public static void main(String[] args) {
        try {DBOper dao = new DBOper();
            Connection conn=dao.getConnection();
            if(conn!=null)
            {System.out.println("连接数据库正常");
            }
            else {System.out.println("连接数据库异常");
            }

        } catch (Exception ex) {
            // TODO: handle exception
            ex.printStackTrace();}
    }
}

StudentDao.java

package xxm.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import xxm.bean.Student;
import xxm.database.DBOper;


public class StudentDao extends DBOper{

    Connection conn =null;
    
    public StudentDao() {

        try {conn= super.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();}
    }


    /**
     * 添加学生用户
     * @param student
     * @return
     */
    public boolean addUser(Student student){
        boolean r = false;
       
        String sql = "INSERT INTO student(sno,sname,spassword,smajor,sclass,sgrade) VALUES(?,?,?,?,?,?);";
       
        try{int num = this.executeUpdate(sql,new String[]{student.getNo(),student.getName(),student.getPasswd(),student.getMajor(),student.getSclass(),student.getGrade()});
            if(num > 0){r = true;}
        }catch(Exception e){e.printStackTrace();
        }finally{//this.closeAll();
        }
        return r;
    }
    
}

CourseDao.java

package xxm.dao;

import java.sql.Connection;
import java.sql.SQLException;

import xxm.bean.Course;
import xxm.bean.Student;
import xxm.database.DBOper;

/**
 * 课程管理
 * 
 * @author xxm
 *
 */
public class CourseDao  extends DBOper{

    Connection conn =null;
    
    public CourseDao(){
        try {conn= super.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();}
    }
    
    /** 
     * 添加选课课程
    * @param course
    * @return
    */
   public boolean addCourse(Course course){
       boolean r = false;
      
       String sql = "INSERT INTO course(course_Name,course_Remain,course_Total,course_Teacher,course_Place,course_Time,course_Timelength) VALUES(?,?,?,?,?,?,?);";
      
       try{int num = this.executeUpdate(sql,new String[]{course.getCourseName(),String.valueOf(course.getCourseRemain()),String.valueOf(course.getCourseTotal()),course.getCourseTeacher(),course.getCoursePlace(),course.getCourseTime(),course.getCourseTimelength()});
           if(num > 0){r = true;}
       }catch(Exception e){e.printStackTrace();
       }finally{//this.closeAll();
       }
       return r;
   }
   
  /**
   * 更新
   * @param course
   * @return
   */
   public boolean update(Course course) {
       
       String sql = "update course set course_Name=?,course_Teacher=?,course_Place=?,course_Time=?,course_Timelength=?,course_Total=?,course_Remain=? where course_Id = ?";
       int num = this.executeUpdate(sql, new String[]{course.getCourseName(),
               course.getCourseTeacher(),
               course.getCoursePlace(),
               course.getCourseTime(),
               course.getCourseTimelength(),
               String.valueOf(course.getCourseTotal()),
               String.valueOf(course.getCourseRemain()),
               String.valueOf(course.getCourseId())});
      if(num>0)
        return true;
      else return false;
   }
}

Servlet

处理学生选课的 servlet
RegisterServlet.java 学生注册

package xxm.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.bean.Student;
import xxm.dao.StudentDao;

@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;

        /**
         * @see HttpServlet#HttpServlet()
         */
        public RegisterServlet() {super();
            // TODO Auto-generated constructor stub
        }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doPost(request,response);
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset = utf-8");
            String userno = request.getParameter("userNo");
            String username = request.getParameter("userName");
            String userpass = request.getParameter("password");
            String major = request.getParameter("major");
            String grade = request.getParameter("grade");
            String sclass = request.getParameter("sclass");
            PrintWriter out = response.getWriter();

            Student user = new Student();
            user.setNo(userno);
            user.setName(username);
            user.setPasswd(userpass);
            user.setMajor(major);
            user.setGrade(grade);
            user.setSclass(sclass);
           
            StudentDao dao = new StudentDao();
            try {Connection conn = dao.getConnection();
                if(conn!=null) {out.print("conn is not null");
                }
                 if(dao.addUser(user)){out.print("注册成功!");
                        response.sendRedirect("login.jsp");
                    }
                    else{out.print("注册失败!");
                    }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();}
        }
}

LoginServlet.java 学生登录

package xxm.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import xxm.database.DBOper;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request,response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset = utf-8");
        PrintWriter out = response.getWriter();
        String stuno = request.getParameter("stuno");
        String stupass = request.getParameter("stupassowrd");    
        DBOper db = new DBOper();
        try {db.getConnection();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();}
        String sql = "SELECT sno,spassword FROM student WHERE sno = ? AND spassword = ?";
        ResultSet rs = db.executeQuery(sql,new String[]{stuno,stupass});
        try {if(rs != null && rs.next()){HttpSession session = request.getSession();

                session.setAttribute("numSession", stuno);
                Cookie cookie = new Cookie("stuno",stuno);
                cookie.setMaxAge(60*60*24*30);
                response.addCookie(cookie);
                // 登录成功,跳转...
   
                RequestDispatcher dispatcher = request.getRequestDispatcher("/FindServlet");
                dispatcher.forward(request,response);
            }else{out.print("登录失败");
                out.print("<br><a href ='login.jsp'> 重新登陆 </a>");
//                response.setContentType("text/html;charset=UTF-8");
//               
//                response.setHeader("refresh", "0; url=/StudentSelect");

            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();}
    }

    public void init()throws ServletException {}

}

FindServlet.java 选课主页

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import xxm.bean.Course;
import xxm.database.DBOper;

/**
 * 主页显示信息的 Servlet
 * 
 * @author xxm
 *
 */
@WebServlet("/FindServlet")
public class FindServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public FindServlet() {super();
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }


     public void process(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            try { 
                 
                // 创建 Connection 连接
                DBOper dao = new DBOper();
                  Connection conn = dao.getConnection(); 
                  // SQL 语句
                  String sql = "select * from course"; 
                  // 获取 Statement
                  Statement statement =  conn.createStatement(); 
              
                  ResultSet resultSet = statement.executeQuery(sql); 
              
                  List<Course> courseList = new ArrayList<Course>(); 
                  while (resultSet.next()) {Course course = new Course();
                    course.setCourseId(resultSet.getInt("course_Id"));
                    course.setCourseName(resultSet.getString("course_Name"));
                    course.setCourseRemain(resultSet.getInt("course_Remain"));
                    course.setCourseTotal(resultSet.getInt("course_Total"));
                    course.setCourseTeacher(resultSet.getString("course_Teacher"));
                    course.setCoursePlace(resultSet.getString("course_Place"));
                    course.setCourseTime(resultSet.getString("course_Time"));
                    course.setCourseTimelength(resultSet.getString("course_Timelength"));
                    
                    courseList.add(course);
                  } 
                  req.setAttribute("courseList", courseList);

                  resultSet.close(); 
                  statement.close(); 
                  conn.close();} catch (Exception e) {e.printStackTrace(); 
                } 

            req.getRequestDispatcher("/studentIndex.jsp").forward(req, resp);
        }
    
}

StudentInfoServlets.java 学生已选课程

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.bean.Course;
import xxm.bean.Student;
import xxm.database.DBOper;

/**
 * Servlet implementation class StudentInfoServlets
 */
@WebServlet("/StudentInfoServlets")
public class StudentInfoServlets extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public StudentInfoServlets() {super();
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
    
    protected void process(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        try {Connection conn = (new DBOper()).getConnection(); 
              Statement statement = (Statement) conn.createStatement(); 
              
              String numSession = (String) req.getSession().getAttribute("numSession");
              String sql1 = "select * from student where sno =" + numSession;
          
              ResultSet resultSet = statement.executeQuery(sql1); 
  
              List<Student> courseStudentList = new ArrayList<Student>(); 
              while (resultSet.next()) {Student student = new Student();
                  student.setSelectedCourse(resultSet.getString("selected_course"));
                  // 将学生加入到课程列表
                  courseStudentList.add(student); 
              } 
 
              String courseStudentString= courseStudentList.get(0).getSelectedCourse();
              String[] array = courseStudentString.split(",");
              
              List<Course> studentCourseList = new ArrayList<Course>(); 
              for (String s:array) {
                  String sql2 = "select * from course where course_Id =" + s ;
                  resultSet = statement.executeQuery(sql2);
                  
                  while (resultSet.next()) {Course course = new Course();
                      course.setCourseId(resultSet.getInt("course_Id"));
                      course.setCourseName(resultSet.getString("course_Name"));
                      course.setCourseTeacher(resultSet.getString("course_Teacher"));
                      course.setCoursePlace(resultSet.getString("course_Place"));
                      course.setCourseTime(resultSet.getString("course_Time"));
                      course.setCourseTimelength(resultSet.getString("course_Timelength"));
                      // 将课程加入学生课程列表
                      studentCourseList.add(course);
                  }
              }
 
              req.setAttribute("studentCourseList", studentCourseList);

              resultSet.close(); 
              statement.close(); 
              conn.close();} catch (Exception e) {e.printStackTrace(); 
            } 
           
            resp.setCharacterEncoding("UTF-8");
            req.getRequestDispatcher("studentInfo.jsp").forward(req, resp);
    }

}

RemainAddServlet.java 剩余可选数

package xxm.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.database.DBOper;

/**
 * Servlet implementation class RemainAddServlet
 */
@WebServlet("/RemainAddServlet")
public class RemainAddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
     @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {process(req, resp);
        }
     
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {process(req, resp);
        }
        
        protected void process(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            try {DBOper db = new DBOper();
                  Connection conn = db.getConnection(); 
                  Statement statement = (Statement) conn.createStatement(); 
     
                  //String keyString = new String(req.getParameter("id").getBytes("iso-8859-1"), "utf-8");
                  
                  req.setCharacterEncoding("UTF-8");
                  // 课程号
                  String keyString = req.getParameter("id");
                  
                  if(keyString == null) {
                        keyString = "";
                        resp.sendRedirect("/FindServlet");
                        
                        return;
                  }
                  
                  // 添加课程, 只能选一门课程
                  String numSession = (String) req.getSession().getAttribute("numSession");
                  String sql1 = "select selected_course from student where sno =" + numSession;
                  ResultSet resultSet = statement.executeQuery(sql1);
                  String course = "";
                  while (resultSet.next()) {course = resultSet.getString("selected_course");
                  }
                  
                  // 还没有选课
                  if(course==null||course.length()==0) {
                      
                      // 修改课程数据
                      String sql2 = "update student set selected_course=\'" + keyString + "\' where sno = " + numSession;
                      statement.executeUpdate(sql2);
                  
                      // 课程余量 -1
                      String sql = "update course set course_Remain=course_Remain-1 where course_Id = \'"+ keyString + "\'";
                      statement.executeUpdate(sql);
                  
                  }else {PrintWriter pw = resp.getWriter();
                      pw.println("<h4> 重复选课 </h4>");
                  }
                  
                 
                  statement.close(); 
                  conn.close();} catch (Exception e) {e.printStackTrace(); 
                }
            
            resp.getWriter().print("{\"data\":\" 返回 json 数据!\"}"); 
        }
    
}

CancelServlet.java 取消选课

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.database.DBOper;

/**
 * 取消选课
 */
@WebServlet("/CancelServlet")
public class CancelServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CancelServlet() {super();
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
    
    protected void process(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        try {Connection conn = (new DBOper()).getConnection(); 
              Statement statement = (Statement) conn.createStatement();
              
              //String keyString = new String(req.getParameter("id").getBytes("iso-8859-1"), "utf-8");
              req.setCharacterEncoding("UTF-8");
              String course = req.getParameter("id");
              
              if(course == null) {
                    course = "";
                    resp.sendRedirect("/FindServlet");
                    
                    return;
              }
              
              String numSession = (String) req.getSession().getAttribute("numSession");
//              String sql1 = "select selected_course from student where sno ='" + numSession + "'";
//              ResultSet resultSet = statement.executeQuery(sql1);
 
              // 取出课程字符串
//              String courseString = "";
//              while (resultSet.next()) {//                  courseString = resultSet.getString("selected_course");
//              }
              
              // 找到课程 id
//              Integer spot = ;
//              courseString = courseString.substring(0, spot) + courseString.substring(spot+2);
              
              // 更新课程数据, 取消
              String sql2 = "update student set selected_course=NULL where sno =" + numSession ;
              statement.executeUpdate(sql2);
              
              // 课程余量 +1
              String sql3 = "update course set course_Remain=course_Remain+1 where course_Id ="+ course;
              statement.executeUpdate(sql3);
              
              statement.close(); 
              conn.close();} catch (Exception e) {e.printStackTrace(); 
            }
        
            resp.getWriter().print("{\"data\":\" 返回 json 数据!\"}");
    }

}

管理员操作部分
FindCourseServlet.java 管理员主页展示

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.bean.Course;
import xxm.database.DBOper;

/**
 * 显示课程信息
 * 
 * @author xxm
 *
 */
@WebServlet("/FindCourseServlet")
public class FindCourseServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public FindCourseServlet() {super();
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {process(req, resp);
    }


     public void process(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    

            try { 
                 
                // 创建 Connection 连接
                DBOper dao = new DBOper();
                  Connection conn = dao.getConnection(); 
                  // SQL 语句
                  String sql = "select * from course"; 
                  // 获取 Statement
                  Statement statement =  conn.createStatement(); 
              
                  ResultSet resultSet = statement.executeQuery(sql); 
              
                  List<Course> courseLists = new ArrayList<Course>(); 
                  while (resultSet.next()) {Course course = new Course();
                    course.setCourseId(resultSet.getInt("course_Id"));
                    course.setCourseName(resultSet.getString("course_Name"));
                    course.setCourseRemain(resultSet.getInt("course_Remain"));
                    course.setCourseTotal(resultSet.getInt("course_Total"));
                    course.setCourseTeacher(resultSet.getString("course_Teacher"));
                    course.setCoursePlace(resultSet.getString("course_Place"));
                    course.setCourseTime(resultSet.getString("course_Time"));
                    course.setCourseTimelength(resultSet.getString("course_Timelength"));
                    
                    courseLists.add(course);
                  } 
                  request.setAttribute("courseList", courseLists);
     
                  
                  resultSet.close(); 
                  statement.close(); 
                  conn.close();} catch (Exception e) {e.printStackTrace(); 
                } 

            request.getRequestDispatcher("adminCourse.jsp").forward(request, response);
        }
}

CreateCourseServlet.java 添加新的课程

package xxm.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.bean.Course;
import xxm.bean.Student;
import xxm.dao.CourseDao;
import xxm.dao.StudentDao;

/**
 * 创建课程,管理员
 * 
 * @author xxm
 *
 */
@WebServlet("/CreateCourseServlet")
public class CreateCourseServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CreateCourseServlet() {super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request,response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset = utf-8");
        String cName = request.getParameter("cName");
        String cTeacher = request.getParameter("cTeacher");
        String cPlace = request.getParameter("cPlace");
        String cTime = request.getParameter("cTime");
        String cLong = request.getParameter("cLong");
        int cTotal = Integer.parseInt(request.getParameter("cTotal"));
        int cRemain = Integer.parseInt(request.getParameter("cRemain"));
        PrintWriter out = response.getWriter();
        
        // 设置属性
        Course course = new Course();
        course.setCourseName(cName);
        course.setCourseTeacher(cTeacher);
        course.setCoursePlace(cPlace);
        course.setCourseTime(cTime);
        course.setCourseTimelength(cLong);
        course.setCourseTotal(cTotal);
        course.setCourseRemain(cRemain);
        
        // 添加到数据库
        CourseDao dao = new CourseDao();
        try {Connection conn = dao.getConnection();
            if(conn!=null) {out.print("conn is not null");
            }
             if(dao.addCourse(course)){out.print("添加成功!");
                    System.out.println("成功!");
                    response.sendRedirect("/xxmtest6/FindCourseServlet");
                }
                else{out.print("添加失败!");
                    System.out.println("失败!");
                    response.sendRedirect("/xxmtest6/FindCourseServlet");
                }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();}
    }
}

CancelCourse.java 删除课程

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import xxm.dao.CourseDao;


/**
 * 删除课程
 * @author Administrator
 *
 */
@WebServlet("/CancelCourse")
public class CancelCourse extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CancelCourse() {super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
         request.setCharacterEncoding("UTF-8");
        String courseId = request.getParameter("newNo");
         // 删除数据
        CourseDao dao = new CourseDao();
       
            try {Connection conn = dao.getConnection();
                String sql = "delete from course where course_Id =" + courseId;
                Statement statement = (Statement) conn.createStatement();
                
                if(courseId == null) {
                    courseId = "";
                    response.sendRedirect("/xxmtest6/FindCourseServlet");
                    
                    return;
              }
                response.sendRedirect("/xxmtest6/FindCourseServlet");
                statement.executeUpdate(sql);
                statement.close(); 
                  conn.close();} catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();}finally {}}

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

AdminCourseServlet.java 修改课程信息

package xxm.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import xxm.bean.Course;
import xxm.dao.CourseDao;

/**
 * 修改课程数据
 * 
 * @author xxm
 *
 */
@WebServlet("/AdminCourseServlet")
public class AdminCourseServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AdminCourseServlet() {super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
         request.setCharacterEncoding("UTF-8");
        int cid = Integer.parseInt(request.getParameter("newNo"));
        String cteach = request.getParameter("ccTeacher");
        String cname = request.getParameter("ccName");
        String cplace = request.getParameter("ccPlace");
        String ctime = request.getParameter("ccTime");
        String clong = request.getParameter("ccLong");
        int ctotal= Integer.parseInt(request.getParameter("ccTotal"));
        int cremain = Integer.parseInt(request.getParameter("ccRemain"));
        System.out.printf("%d,%s,%s,%s,%s,%s,%d,%d\n",cid,cteach,cplace,cname,ctime,clong,ctotal,cremain);
        System.out.println("===========");
        // 设置属性
        Course course = new Course();
        course.setCourseId(cid);
        course.setCourseName(cname);
        course.setCourseTeacher(cteach);
        course.setCoursePlace(cplace);
        course.setCourseTime(ctime);
        course.setCourseTimelength(clong);
        course.setCourseTotal(ctotal);
        course.setCourseRemain(cremain);
        
         // 修改数据
        CourseDao dao = new CourseDao();
       
            try {Connection conn = dao.getConnection();
                if(dao.update(course)) {System.out.println("修改成功!");
                }else {System.out.println("修改失败!");
                }
            
                  conn.close(); 
                  response.sendRedirect("/xxmtest6/FindCourseServlet");
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();}finally {}}

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}

工程已上传到链接描述

退出移动版