JSP实现简易选课系统

一、环境介绍

  • 开发工具: idea
  • 数据库: 一、mysql5.7
  • 使用技术:JSP
  • 功能: 学生选课、学生查成绩、教室添加课程、编辑成绩、学生教师登录

二、详细步骤

1 学生教师登录 index.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:23
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>学生选课系统</title>
  </head>
  <body>
  <form method="post" id="form1" name="form1" onsubmit="return check()" action="check.jsp">
    <script language="JavaScript">
      function check() {
        if(document.form1.name.value==""){
          alert("账号不能为空");
        }
        else if(document.form1.password.value==""){
          alert("密码不能为空");
        }
      }
    </script>
    <table border="0" cellspacing="0" align="center">
      <tr>
        <td>选择身份</td>
        <td>
          <input name="role" type="radio" value="0">学生
          <input name="role" type="radio" value="1">教师
        </td>
      </tr>
      <tr>
        <td>账号</td>
        <td><input name="name" type="text" size="20"></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input name="password" type="password" size="20"></td>
      </tr>
      <tr>
        <td colspan="2" align="center">
          <input name="submit" type="submit" value="登录">
          <input name="reset" type="reset" value="重置">
        </td>
      </tr>
    </table>
  </form>
  </body>
</html>

2 登录验证 check.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="javax.servlet.*" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    request.setCharacterEncoding("gb2312");
    Connection connection;
    String uname=request.getParameter("name");
    String upassword=request.getParameter("password");
    Integer urole=Integer.valueOf(request.getParameter("role"));
    session.setAttribute("username",uname);
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
    Statement statement=connect.createStatement();
    String sql="select * from cuser where uname='"+uname+"'";
    ResultSet resultSet=statement.executeQuery(sql);
    if(resultSet.next()){
        session.setAttribute("uid",resultSet.getObject("id"));
        if(upassword.equals(resultSet.getObject("pass"))){
            if(urole.equals(resultSet.getObject("role"))){
                Integer uid = (Integer) resultSet.getObject("id");
                out.println("<script language='JavaScript'>alert('登录成功')</script>");
                if(urole==1){
                    response.setHeader("refresh","0;url=admin.jsp");
                }
                else{
                    response.setHeader("refresh","0;url=student.jsp?uid="+uid);
                }
            }
            else{
                out.println("<script language='JavaScript'>alert('账号不存在,请重新输入')</script>");
                response.setHeader("refresh","0;url=index.jsp");
            }
        }
        else{
            out.println("<script language='JavaScript'>alert('密码错误,请重新输入')</script>");
            response.setHeader("refresh","0;url=index.jsp");
        }
    }
    else{
        out.println("<script language='JavaScript'>alert('账号不存在,请重新输入')</script>");
        response.setHeader("refresh","0;url=index.jsp");
    }
    resultSet.close();
    statement.close();
    connect.close();
%>
</body>
</html>

3 学生操作界面 student.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <title>学生</title>
</head>
<body>

    <table border="1" cellspacing="0" align="center">
        <tr align="center">
            <td>序号</td>
            <td>课程名称</td>
            <td>选课</td>

        </tr>
        <%
            Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
            Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            String sql="select * from course";
            ResultSet resultSet=statement.executeQuery(sql);

            while(resultSet.next()) {
                String ID=resultSet.getString("id");
                String name=resultSet.getString("course_name");
        %>
        <tr align="center">
            <td ><%=ID%></td>
            <td ><%=name%></td>
            <td ><a href="select_course.jsp?cid=<%=ID%>">选择课程</a></td>
            <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
        </tr>
        <%
            }
            statement.close();
            resultSet.close();
            connect.close();
        %>
        <%--<tr align="center">--%>
        <%--<td colspan="6"><button type="submit" onsubmit="download()">下载文件</button></td>--%>
        <%--</tr>--%>

        <%--<script language="JavaScript">--%>
        <%--function download() {--%>
        <%--window.location.href("\\web\\upload\\");--%>
        <%--}--%>
        <%--</script>--%>
    </table>

<!-- 查询成绩 -->
<table border="1" cellspacing="0" align="center">
    <tr align="center">
        <td>序号</td>
        <td>课程名称</td>
        <td>成绩</td>

    </tr>
    <%
        Connection connect1=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
        Statement statement1=connect1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        request.setCharacterEncoding("gb2312");
        String uid=request.getParameter("uid");
        String sql1="select g.id, g.grade, c.course_name from cuser u,grade g,course c where u.id=g.cid and g.sid = c.id and u.id = "+uid;
        ResultSet resultSet1=statement1.executeQuery(sql1);

        while(resultSet1.next()) {
            String gid = resultSet1.getString("id");
            String gname = resultSet1.getString("course_name");
            String grade = resultSet1.getString("grade");

    %>
    <tr align="center">
        <td ><%=gid%></td>
        <td ><%=gname%></td>
        <td ><%=grade%></td>
        <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
    </tr>
    <%
        }
        statement.close();
        resultSet.close();
        connect.close();
    %>
</table>


</body>
</html>

4 学生选课 select_course.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<html>
<head>
    <title>选课</title>
</head>
<body>
<%
    request.setCharacterEncoding("gb2312");
    String cid = request.getParameter("cid");
    Integer uid = (Integer) session.getAttribute("uid");
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
    Statement statement=connect.createStatement();
    String sql="insert into grade (sid,cid) values ("+cid+","+uid+")";
    int row =  statement.executeUpdate(sql);
    if (row == 1) {
        out.println("<script language='JavaScript'>alert('选课成功')</script>");
        response.setHeader("refresh","0;url=student.jsp?uid="+uid);
    }else {
        out.println("<script language='JavaScript'>alert('选课失败')</script>");
        response.setHeader("refresh","0;url=student.jsp?uid="+uid);
    }
%>
</body>
</html>

5 教师操作界面 admin.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:30
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <title>admin</title>
</head>
<body>
<table border="1" cellspacing="0" align="center">
    <tr align="center">
        <td>序号</td>
        <td>课程名称</td>
        <td>选课</td>

    </tr>
    <%
        Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
        Statement statement=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        String sql="select * from course";
        ResultSet resultSet=statement.executeQuery(sql);

        while(resultSet.next()) {
            String ID=resultSet.getString("id");
            String name=resultSet.getString("course_name");
    %>
    <tr align="center">
        <td ><%=ID%></td>
        <td ><%=name%></td>
        String name = new String(username.getBytes("ISO-8859-1"),"UTF-8");
        <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
    </tr>
    <%
        }
        statement.close();
        resultSet.close();
        connect.close();
    %>
    <%--<tr align="center">--%>
    <%--<td colspan="6"><button type="submit" onsubmit="download()">下载文件</button></td>--%>
    <%--</tr>--%>

    <%--<script language="JavaScript">--%>
    <%--function download() {--%>
    <%--window.location.href("\\web\\upload\\");--%>
    <%--}--%>
    <%--</script>--%>

</table>

<form method="post" id="form1" name="form1" onsubmit="return check()" action="admin_course.jsp">
    <script language="JavaScript">
        function check() {
            if(document.form1.name.value==""){
                alert("课程名称不能为空");
            }
        }
    </script>
    <table border="0" cellspacing="0" align="center">
        <tr>
            <td>课程名称</td>
            <td><input name="name" type="text" size="20"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input name="submit" type="submit" value="提交">
                <input name="reset" type="reset" value="重置">
            </td>
        </tr>
    </table>
</form>

<table border="1" cellspacing="0" align="center">
    <tr align="center">
        <td>序号</td>
        <td>课程名称</td>
        <td>选课</td>

    </tr>
    <%
        Connection connect1=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
        Statement statement1=connect1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
        String sql1="select g.id, g.grade, c.course_name,u.uname from cuser u,grade g,course c where u.id=g.cid and g.sid = c.id";
        ResultSet resultSet1=statement1.executeQuery(sql1);

        while(resultSet1.next()) {
            String ID=resultSet1.getString("id");
            int grade=resultSet1.getInt("grade");
            String course_name=resultSet1.getString("course_name");
            String uname=resultSet1.getString("uname");
    %>
    <script language="JavaScript">
        function update() {
            var ele=document.getElementById("from2");           //  先导航到要改的标签
            ele.style.display="block";
        }
    </script>
    <tr align="center">
        <td ><%=ID%></td>
        <td ><%=uname%></td>
        <td ><%=course_name%></td>
        <td ><%=grade%></td>

        <td ><button onclick="update()">编辑成绩</button></td>
        <%--<td><input name="download" type="checkbox" value=<%=filename%>></td>--%>
    </tr>
<%--    <form action="admin_grade.jsp" method="post" style="display: none" id="form2">--%>
<%--        <input type="text" name="id" value="<%=ID%>">--%>
<%--        <input type="text" name="grade" value="<%=grade%>">--%>
<%--        <input type="submit"  value="修改">--%>
<%--    </form>--%>
    <%
        }
        statement.close();
        resultSet.close();
        connect.close();
    %>
    <%--<tr align="center">--%>
    <%--<td colspan="6"><button type="submit" onsubmit="download()">下载文件</button></td>--%>
    <%--</tr>--%>

    <%--<script language="JavaScript">--%>
    <%--function download() {--%>
    <%--window.location.href("\\web\\upload\\");--%>
    <%--}--%>
    <%--</script>--%>

</table>
</body>
</html>

6 教师添加课程 admin_course.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<html>
<head>
    <title>教室管理课程</title>
</head>
<body>
<%
    request.setCharacterEncoding("gb2312");
    String name = request.getParameter("name");
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
    Statement statement=connect.createStatement();
    String sql="insert into course (course_name) values ('"+name+"')";
    int row =  statement.executeUpdate(sql);
    if (row == 1) {
        out.println("<script language='JavaScript'>alert('添加成功')</script>");
        response.setHeader("refresh","0;url=admin.jsp");
    }else {
        out.println("<script language='JavaScript'>alert('添加失败')</script>");
        response.setHeader("refresh","0;url=admin.jsp");
    }
%>
</body>
</html>

7 教师编辑成绩 admin_grade.jsp

<%--
  Created by IntelliJ IDEA.
  User: EDZ
  Date: 2019/10/22
  Time: 9:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<html>
<head>
    <title>添加成绩</title>
</head>
<body>
<%
    request.setCharacterEncoding("gb2312");
    String id = request.getParameter("id");
    String grade = (String) session.getAttribute("grade");
    Class.forName("com.mysql.jdbc.Driver");
    Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_course","root","root");
    Statement statement=connect.createStatement();
    String sql="update grade set grade = "+grade+" where id = "+id;
    int row =  statement.executeUpdate(sql);
    if (row == 1) {
        out.println("<script language='JavaScript'>alert('编辑成功')</script>");
        response.setHeader("refresh","0;url=admin.jsp");
    }else {
        out.println("<script language='JavaScript'>alert('编辑失败')</script>");
        response.setHeader("refresh","0;url=admin.jsp");
    }
%>
</body>
</html>

三、部分界面

学生操作界面
在这里插入图片描述
在这里插入图片描述

四、注意事项

表单post提价中文乱码问题:

 String name = new String(username.getBytes("ISO-8859-1"),"UTF-8");

欢迎关注一点博客公众号
在这里插入图片描述

发布了40 篇原创文章 · 获赞 18 · 访问量 9491

猜你喜欢

转载自blog.csdn.net/qq_37740841/article/details/102679538
今日推荐