一、环境介绍
- 开发工具: 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");
欢迎关注一点博客公众号